OK、完全なレイアウトが構築されました。しかし、結果として得られた長い xml ファイルにはあまり満足していません。以下に、xml アウトラインとデザイナー ビューの簡略版を示します。そして、同様のコンポーネントの各グループを独自のカスタム コントロールに抽象化する方法を考えていました。
たとえば、下の図では、抽象化したいコントロールの 1 つをハイライトしています。LinearLayout
内部に2TextView
があり、独自のプロパティと属性が設定されている代わりに。経由で参照したいと思い<package-name.individual_song_item
android:layout...> ... </>
ます。私がしなければならないのはTextView
、最上位コンポーネントの属性を介して、最初の のテキストを 2 番目のテキストと一緒に設定することだけです。
これはどのように行うことができますか?レイアウトを完成させましたが、何も抽象化されていないのは好きではありません。
したがって、私が探している期待される結果は次のとおりです(画像の右側を見ると、LinearLayout
画像の下に1つだけあり、残りは になります<package-name.individual_song_item>
)
コンポーネントのサブセットのみを使用して新しいレイアウト xml を作成しようとしましたが、それを元に戻すときに機能させることができませんでした。
オールドウェイ
<LinearLayout >
<ImageView />
<LinearLayout >
<LinearLayout >
<TextView />
<TextView />
</LinearLayout>
<LinearLayout >
<TextView />
<TextView />
</LinearLayout>
<LinearLayout >
<TextView />
<TextView />
</LinearLayout>
....
</LinearLayout>
</LinearLayout>
可能な提案された方法
<LinearLayout >
<ImageView />
<LinearLayout >
<com.example.individual_song_item />
<com.example.individual_song_item />
<com.example.individual_song_item />
....
<com.example.individual_song_item <!-- example (possible!?!?) -->
....
app:label="Group"
app:value="Group Name" />
</LinearLayout>
</LinearLayout>