[解決済み] ナビゲーションドロワーでチェックしたメニューの色を変更する
質問
新しいAndroid Design Supportライブラリを使用して、私のアプリケーションにナビゲーションドロワーを実装しています。
選択したアイテムの色を変更する方法がわかりません!
メニューのxmlはこちらです。
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/navigation_item_1"
android:icon="@drawable/ic_1"
android:title="@string/navigation_item_1"/>
<item
android:id="@+id/navigation_item_2"
android:icon="@drawable/ic_2"
android:title="@string/navigation_item_2"/>
</group>
そして、これがナビゲーションビューの xml で、これは
android.support.v4.widget.DrawerLayout
:
<android.support.design.widget.NavigationView
android:id="@+id/activity_main_navigationview"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/drawer_header"
app:itemIconTint="@color/black"
app:itemTextColor="@color/primary_text"
app:menu="@menu/menu_drawer">
<TextView
android:id="@+id/main_activity_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:textColor="@color/primary_text" />
</android.support.design.widget.NavigationView>
ありがとうございました。
[EDIT] 私はすでにこのような解決策を見てきました。 アンドロイドメニューの背景色を変更する .
かなりハックされているようで、新しいデザインサポートライブラリで、もっときれいなものが導入されているのでは?
どのように解決するのですか?
これは
色状態リソース
. もし、あなたの
NavigationView
の中で
app:itemIconTint="@color/black"
app:itemTextColor="@color/primary_text"
ここでは
@color/black
または
@color/primary_test
を使用します。
Color State List Resource
. そのためには、まず新しい
xml
(例: drawer_item.xml) の中に作ります。
color
ディレクトリの中にあります (本来は
res
ディレクトリの中にあるはずです)。という名前のディレクトリがない場合は
color
という名前のディレクトリがなければ、作ってください。
では、内側の
drawer_item.xml
の中で、次のようなことをします。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="checked state color" android:state_checked="true" />
<item android:color="your default color" />
</selector>
最後のステップは
NavigationView
<android.support.design.widget.NavigationView
android:id="@+id/activity_main_navigationview"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/drawer_header"
app:itemIconTint="@color/drawer_item" // notice here
app:itemTextColor="@color/drawer_item" // and here
app:itemBackground="@android:color/transparent"// and here for setting the background color to tranparent
app:menu="@menu/menu_drawer">
このように、カラーステート・リスト・リソースを別々に使って
IconTint
,
ItemTextColor
,
ItemBackground
.
これで、ある項目をチェック済みにしたとき (
xml
またはプログラム的に)、その項目はチェックされていないものと異なる色を持つようになります。
関連
-
[解決済み] ナビゲーションドロワー(Google+とYouTubeの比較)
-
[解決済み】Androidでステータスバーの色を変更する方法は?
-
[解決済み】ナビゲーションドロワー。起動時に選択された項目を設定するには?
-
[解決済み] Eclipseでのandroid:configChangesでのAdmobエラー
-
[解決済み] AndroidでラジオボタンにOnClickListenerを設定するには?
-
[解決済み] getApplication()、getApplicationContext()、getBaseContext()、someClass.thisの違いと使い分け。
-
[解決済み] これはどういうことですか?失敗 [INSTALL_FAILED_CONTAINER_ERROR]?
-
[解決済み] XMLで矩形を描画できますか?
-
[解決済み] Recyclerviewと異なるタイプの行のインフレーションの処理
-
[解決済み] WhatsAppでメッセージを送信する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AndroidにおけるViewPager2の適切な実装
-
[解決済み] Android Debug Bridgeでアプリケーションのインストール時にINSTALL_FAILED_VERSION_DOWNGRADEを無視する方法はありますか?
-
[解決済み] Android ConstraintLayout - あるビューを別のビューの上に配置する
-
[解決済み] ArrayList<MyCustomClass>をJSONArrayに変換する。
-
[解決済み] FragmentPagerAdapterのgetItemが呼び出されない
-
[解決済み] ProjectScopeServices に Factory タイプのサービスはありません。
-
[解決済み] FABアイコンの色を設定する
-
[解決済み] Androidの環境設定。ユーザーが環境設定画面を使用していない場合、デフォルト値を読み込むにはどうすればよいですか?
-
[解決済み] ViewPager2でスワイプを無効にするには?
-
[解決済み] アンドロイドボタンセレクター