我一直在學習有關合並和修改嵌套的屬性包括:最近,我有一個問題,我似乎無法找出答案了。假設我有一個佈局定義了一個我想添加到多個佈局的頭部組件。但是,我想更改每個包含用法的每個標題的標題或圖標。例如說我有以下佈局:上包括佈局
<RelativeLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@style/menu_header">
<Button android:id="@+id/backButton"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/button"
android:text="@string/back"/>
<TextView style="@style/headerTitle"
android:layout_centerInParent="true"
android:text="${title}"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
</RelativeLayout>
然後我就可以使用包括在其他佈局:
<LinearLayout ...>
<include android:id="@+id/searchHeader" layout="@layout/shared_header" title="Search"/>
...
</LinearLayout>
我知道我可以修改任何layout_ *根元素的屬性,但我定義其他屬性來代替佈局,比如在這個例子中說「title」,而不必創建我自己的View子類,在valaues /資源中添加declare-styleable定義等等?
有這樣的事情會使得創建可重用的意見,以便更簡單,但我似乎無法找到任何證據說,如果合併+包括可以做到這一點。
我有種想,如果你想改變這些意見的內容,你應該利用由這些意見的自定義視圖。當你想在其他地方複製/粘貼一個視圖/視圖組時,包含的東西更多。 – Gregory
但是,如果您只能複製和粘貼完全相同的代碼,則包含的用途有限。自定義視圖需要更多的開銷作者,添加自定義樣式選項,創建代碼的子類視圖等。如果我做的是調整嵌套元素的某些屬性,好像可以做,沒有吃整個大象 – chubbsondubs
我再次閱讀了關於include的快速「教程」(http://android-developers.blogspot.com/2009/02/android-layout-tricks-2-reusing-layouts.html),看起來很清楚,它只是意思是簡單的複製/粘貼,特別是當你在2種不同的佈局(縱向和橫向)中包含一個共同的「子佈局」時。儘管我確實發現你的想法非常酷:/ – Gregory