web-dev-qa-db-ja.com

下部ナビゲーションビューで選択したアイテムを強調表示

アクティビティXMlにBottom Navigation Viewを追加しました。メニュー項目からデフォルトのチェック項目を設定できません。常に最初のメニュー項目をデフォルトとして設定します。また、他のメニュー項目をタップすると、選択したメニュー項目が強調表示されません。プログラムでitem.setChecked(true)を設定すると、メニューオプションが強調表示されますが、最初のメニュー項目も強調表示されます。使ってます

 compile 'com.Android.support:design:25.0.1'

これが一番下のナビゲーションビューです

<Android.support.design.widget.BottomNavigationView
    Android:id="@+id/bottom_navigation"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    app:itemBackground="@color/white"
    app:itemTextColor="@color/black"
    app:menu="@menu/navigation_menu">
</Android.support.design.widget.BottomNavigationView>

こちらがメニューになります

 <?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
  xmlns:app="http://schemas.Android.com/apk/res-auto">

<item
    Android:id="@+id/action_wallet"
    Android:enabled="true"
    Android:icon="@drawable/ic_account_balance_wallet_black_24dp"
    Android:title="wallet"
    app:showAsAction="ifRoom"
    />
<item
    Android:id="@+id/action_card"
    Android:enabled="true"
    Android:title="allowance"
    Android:icon="@drawable/ic_credit_card_black_24dp"
    app:showAsAction="ifRoom"
    />

<item
    Android:id="@+id/action_transaction"
    Android:enabled="true"
    Android:icon="@drawable/ic_description_black_24dp"
    Android:title="transaction"
    app:showAsAction="ifRoom" />

</menu>

Bottom Navigation View 誰かがこの状況に遭遇しましたか?これを処理する方法について何か提案はありますか?

ありがとう、プリヤ

8
user2622786

drawableフォルダにselector.xmlを追加します。たとえば、私のxml

navbar_color.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="highlight color" />
   <item Android:color="normal color"  />
</selector>

次に、次の行をBottomNavigationViewに追加します

app:itemIconTint="@drawable/selector"
app:itemTextColor="@drawable/selector"
10
Abhishek c

OnNavigationItemSelectedListenerからtrueを返さなかったため、問題に直面していました。 OnNavigationItemSelectedListenerからtrueを返した後、問題は解決しました。その方向を指示してくれたuser2650128に感謝します。

7
user2622786