2017-04-22 56 views
0

我有這樣的菜單:如何將我的菜單設置爲活動狀態?

enter image description here

我喜歡這樣創建:

menu_navigation.xml

<?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" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.ZZZZ.global.YYYY.XXXX"> 

    <item 
     android:id="@+id/nearbyButton" 
     android:title="Nearby" 
     android:onClick="showNearbyPressed" 
     android:state_selected="true" 
    /> 

    <item 
     android:id="@+id/browseAtoZButton" 
     android:title="Browse A to Z" 
     android:onClick="showAtoZPressed" 
     android:state_selected="true" 
    /> 

</menu> 

而且我把這項活動中XML像這樣:

<android.support.design.widget.BottomNavigationView 
    android:id="@+id/Navigation" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom" 
    android:background="#Ccc" 
    app:menu="@menu/menu_navigation" 
/> 

問題是,如果我點擊「瀏覽A到Z」,然後「附近」仍然突出顯示。 「瀏覽A到Z」保持不變。我期待的是,瀏覽按鈕將獲得突出顯示的藍色/紫色,並且「附近」將變爲灰色。但是這並沒有發生。

  1. 如何改變呢?
  2. 是它可能是一個字體的事情,我當你點擊它來手動更改字體/顏色?

我已經試過:

navigation.performClick(); 

和:

navigation.setSelectedItemId(R.id.nearbyButton); 

任何想法,就是我在這裏失蹤?

+0

爲什麼你已經'機器人:在這兩個菜單state_selected = 「真」'? –

回答

0

首先,請從你的菜單項android:state_selected="true"。如下更新您menu_navigation.xml

<?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" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.ZZZZ.global.YYYY.XXXX"> 

    <item 
     android:id="@+id/nearbyButton" 
     android:title="Nearby" 
     android:onClick="showNearbyPressed" /> 

    <item 
     android:id="@+id/browseAtoZButton" 
     android:title="Browse A to Z" 
     android:onClick="showAtoZPressed" /> 

</menu> 

處理項目狀態

您需要提供一個ColorStateList資源,並將此資源作爲backgroundapp:itemIconTintapp:itemTextColor屬性:

更新BottomNavigationView如下圖所示:

<android.support.design.widget.BottomNavigationView 
    android:id="@+id/Navigation" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom" 
    android:background="#Ccc" 
    app:menu="@menu/menu_navigation" 
    app:itemIconTint="@drawable/item_bg" 
    app:itemTextColor="@drawable/item_bg" /> 

這裏是item_bg.xml

<!-- item_bg.xml --> 
<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:color="@color/blue" android:state_checked="true" /> 
    <item android:color="@color/white" /> 
</selector> 

希望這將有助於〜

相關問題