Android ウィジェット用にさまざまなテーマ設定可能なスタイルを定義したいと思います。以下の例では、2 つの ImageView ウィジェットがあり、1 つは私の「テーマ」スタイルを使用し、もう 1 つは手動でスタイル設定されています。アクティビティのテーマ構成に基づいて自動的に決定できるように、'base_theme' プレフィックスを省略できるように構成ファイルを実装したいと考えています。
テーマの作成に関するドキュメントには、スタイル属性を持つ特定のものではなく、すべての ImageView またはボタンのスタイルを変更する方法が記載されています。スタイル設定可能なカスタム コンポーネントを使用することで問題を解決できることがわかりましたが、問題を解決するためのより良い方法があると思います。
base_style.xml
<style name="base_theme" parent="android:Theme.NoTitleBar">
</style>
<style name="base_theme.event_list_filter">
<item name="android:orientation">horizontal</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_margin">10dp</item>
<item name="android:background">@drawable/base_white_rounded</item>
</style>
<style name="base_theme.base_event_list_filter_image">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:padding">10dp</item>
<item name="android:background">@drawable/vr_black_border</item>
</style>
<style name="base_theme.base_event_list_scrollable">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">0dp</item>
<item name="android:layout_weight">1</item>
<item name="android:background">@drawable/base_white_rounded</item>
</style>
<style name="base_theme.base_event_list_table">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">fill_parent</item>
</style>
activity_layout.xml
<LinearLayout style="@style/base_theme.base_event_list_filter" >
<ImageView
style="@style/base_theme.base_event_list_filter_image"
android:src="@drawable/pic0" />
<ImageView
...
android:src="@drawable/pic1" />
</LinearLayout>
助けてくれてありがとう、
マシーク