標籤:
如果在一個app中有大量的相似的布局條目時,可以考慮自訂群組合控制項,當然也可以使用include標籤。本人認為在一定程度上認為include標籤比自訂群組合控制項要簡單。自訂群組合控制項不僅要繼承控制項或者繼承布局,而且要重寫一些涉及到的方法,有時候還要自訂屬性檔案,必要的時候還要自訂方法,達到java檔案中控制子控制項的屬性。如果控制不好,自訂群組件就會出現莫名其妙的錯誤,比如自訂群組合控制項執行個體化失敗,屬性值載入失敗或找不到屬性檔案。
所以,一般情況下,如果不是特別複雜的布局條目時,本人推薦使用include標籤。
下面是include具體使用方法:
首先,必須重建一個標題列布局檔案,比如R.layout.title
然後使用<include layout=布局檔案名稱/>
如果想主布局中控制標題列布局,就必須指定android:layout_width和android:layout_height。如果不指定這倆個屬性的話,標題列布局就預設在某一個位置,而不允許你在布局檔案或在.xml中控制它的位置及大小。
這樣,就可以用findViewById(int id)來找到標題列布局中的子控制項,上面所描述的只是添加一個標題列布局
如果想在一個布局中添加多個相似的標題列布局的話,也是使用include標籤。但是,多個標籤找不到子控制項並控制其屬性。所以為多標籤的標題列布局添加id標示,然後在java檔案中用代碼控制其屬性。
具體格式:findViewById(id(布局標題列)),找到該標籤並為標籤添加引用,將findViewById(id(布局標題列))獲得的布局轉型,將引用指向找到的標籤。最後,就可以使用
引用.findViewById(int id)查詢標籤內的子控制項。當然也可以通過布局參數來控制標籤的位置及大小。
注意:如果為標籤指定具體大小值,系統會根據標籤的架構來布置子控制項。如果子控制項太大而超出了標籤的邊框,系統不會顯示超出標籤架構之外的部分,這樣會影響布局。所以布局標籤應該首先考慮標籤的架構能不能包裹子控制項。當然,將標籤設定成包裹內容wrap_content是個不錯的選擇,系統會根據標籤內的子控制項的大小來調整標籤架構的大小,以適應子控制項,使得子空間能夠完全顯示出來,達到預想的效果。
android include標籤使用