アプリの代替テーマであるダークを作成しました。次のように定義されているナビゲーションバーを使用します
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
選択可能なメニュー内に定義された 2 つのグループがあります。
<item
android:id="@+id/sort_item"
android:title="One">
<menu>
<group
android:id="@+id/menu_group_sort"
android:checkableBehavior="single">
<item
android:id="@+id/nav_sort_new"
android:title="@string/menu_new" />
<item
android:id="@+id/nav_sort_hot"
android:title="@string/menu_hot" />
<item
android:id="@+id/nav_sort_top"
android:title="@string/menu_top" />
</group>
</menu>
</item>
<item
android:id="@+id/filter_item"
android:title="Two">
<menu>
<group
android:id="@+id/menu_group_filter"
android:checkableBehavior="single">
<item
android:id="@+id/nav_category_all"
android:title="@string/menu_all" />
<item
android:id="@+id/nav_category_business"
android:title="@string/menu_business" />
<item
android:id="@+id/nav_category_technology"
android:title="@string/menu_technology" />
<item
android:id="@+id/nav_category_politics"
android:title="@string/menu_politics" />
</group>
</menu>
</item>
通常、選択された項目のテキストは colorPrimary で、背景はある種の Android グレーに見えます。新しいテーマを定義するときは、そのまま使用します
<!-- Dark theme. -->
<style name="AppTheme.Dark" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimaryInverse</item>
<item name="colorPrimaryDark">@color/colorPrimaryDarkInverse</item>
<item name="colorAccent">@color/colorAccentInverse</item>
<item name="android:textColor">@color/textColorPrimaryInverse</item>
<item name="android:textColorPrimary">@color/textColorPrimaryInverse</item>
<item name="android:textColorSecondary">@color/textColorSecondaryInverse</item>
<item name="android:textColorPrimaryInverse">@color/textColorPrimary</item>
<item name="android:textColorSecondaryInverse">@color/textColorSecondary</item>
<item name="android:background">@color/colorPrimaryInverse</item>
<item name="colorControlHighlight">@color/colorAccentInverse</item>
</style>
これはほとんど機能します。NavigationView で現在選択されている項目を除いて、すべてが希望どおりにスタイル設定されています。代わりに、colorPrimary の 1 つの固体ブロック (アイコンもテキストもありません) のように見え、両端に colorControlHighlight がありますが、それだけです。
NavigationView メニュー内で選択した項目をカスタマイズする方法を知っている人はいますか? 考えられるすべての状態を試しましたが、どれも機能しませんでした。