1. 程式人生 > >實現一個LinearLayout中包含一個TextView和一個EditText,點選EditText是,整個LinearLayout都獲取焦點,主要用於登入介面賬號密碼輸入框的UI設計

實現一個LinearLayout中包含一個TextView和一個EditText,點選EditText是,整個LinearLayout都獲取焦點,主要用於登入介面賬號密碼輸入框的UI設計

最近在製作一個專案的登陸介面UI的時候,由於沒有專業美工的作圖,很多素材都是要自己去搜集,有時候難免去“盜用”其他作品中的圖片,然而圖片大小等方面適配都不太理想,邊邊角角的空隙處理也不嚴謹。

      在賬號密碼輸入框的樣式設計的時候,要實現一個LinearLayout中包含一個TextView和一個EditText,在使用者點的時候實現焦點的效果,聽上去好像不難實現,但當做起來的時候還是遇到了一些問題,當點選的時候改變的背景僅僅是editext的部分,而整個linear無論如何設定都沒有達到想要的效果,嘗試了很久,後來經過同事的幫助才瞭解到一個以前沒用過的屬性 android:addStatesFromChildren,做一簡單的整理,算是記錄學習的過程。

      在android的API中是這樣描述的:

    設定整個viewGroup的drawable狀態是否也包含子空間的drawable狀態。該屬性用於當子控制元件editext或者button獲得焦點時作為一個組出現使用(翻譯的不好,水平有限,理解就好),這樣一來,將android:addStatesFromChildren設為true,當組中的EditText或是Button獲取焦點時,將Layout的Background設定成相應EditText或的Button的Drawable ,這樣看上去該linear中的view是一個整體。