私は最近、マージとインクルードについて学んでいますが、私にも答えがわからないような質問があります。複数のレイアウトに追加したいヘッダー コンポーネントを定義するレイアウトがあるとします。ただし、インクルードの使用ごとに各ヘッダーのタイトルまたはアイコンを変更したいと考えています。たとえば、次のレイアウトがあるとします。
<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_* 属性を変更できることはわかっていますが、View の独自のサブクラスを作成せずに、この例の「タイトル」など、レイアウトに代入される他の属性を定義できますか、declare-styleable を追加します値/リソースなどの定義?
このようなものを使用すると、再利用可能なビューの作成が非常に簡単になりますが、マージ + インクルードができるかどうかを示す証拠が見つからないようです。