ボトムを作成したアプリを作成していますナビゲーションバー。今欲しいのは、ナビゲーションバー項目の選択/非選択状態に別々の色を設定することです。それで、私はxmlファイルを作成して、そしてそれをナビゲーションバーのためにアイテム色とテキストカラーのためにそれを設定しました:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@android:color/holo_blue_dark" />
<item android:color="@android:color/darker_gray" />
</selector>
メインメニューでナビゲーションバーを次のように追加します。
<android.support.design.widget.BottomNavigationView
android:id="@+id/mainNav"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:background="@android:color/white"
android:elevation="8dp"
app:itemIconTint="@color/nav_bar_item_state"
app:itemTextColor="@color/nav_bar_item_state"
app:menu="@menu/nav_items"></android.support.design.widget.BottomNavigationView>
私はこのリンクからこの解決策を得ました:
しかし、私がアプリを実行すると、エラー「ナビゲーションバーを膨張させることができません」でクラッシュします。何がおかしいのですか?任意の助けがいただければ幸いです。
更新: 私はドロアブルファイルでセレクタファイルを作成することによって同じことを試みましたが、残念ながらそれはまたうまくいきません。
回答:
回答№1は0これを試して:-
セット item.setCheckable(true)
内部 onNavigationItemSelected()
public boolean onNavigationItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
item.setCheckable(true);
mTextMessage.setText(R.string.title_home);
return true;
}
return false;
}