2016-07-06 37 views
0

这是我activity_main_drawer.xml更改检查菜单项的抽屉式导航栏的颜色在不同的菜单

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <group android:checkableBehavior="single"> 
     <item 
      android:id="@+id/nav_hasiera" 
      android:title="@string/nav_hasiera" /> 
     <item 
      android:id="@+id/nav_oharrak" 
      android:title="@string/nav_oharrak" /> 
     <item 
      android:id="@+id/nav_instalazioak" 

      android:title="@string/nav_instalazioak" /> 

     <item 
      android:id="@+id/nav_gustokoak" 
      android:title="@string/nav_gustokoak" /> 

    </group> 

    <item android:title="@string/filtrar_por"> 
     <menu> 
      <item 
       android:id="@+id/nav_lokalizazioa" 
       android:title="@string/nav_lokalizazio" /> 
      <item 
       android:id="@+id/nav_ekintzak" 
       android:title="@string/nav_ekintzak" /> 
      <item 
       android:id="@+id/nav_ordutegia" 
       android:title="@string/nav_ordutegia" /> 
     </menu> 
    </item> 

    <item android:title="@string/opciones"> 
     <menu> 

      <item 
       android:id="@+id/nav_hizkuntza" 

       android:title="@string/nav_hizkuntza" /> 
     </menu> 
    </item> 
</menu> 

当我选择group标签的项目的背景颜色的items。没关系。

但是当我选择Filtrar por...opcionesitems时,背景颜色不会改变。

我检查this postthis但不解决我的问题

编辑: 这是我activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/mainactivity_linearlayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/donostiakirola_fondo_pantalla" 
    tools:context=".MainActivity"> 

<android.support.v4.widget.DrawerLayout 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" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

    <include 
     layout="@layout/app_bar_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <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" 
     android:background="@color/colorPrimaryDark" 
     app:itemTextColor="@color/white" 
     app:menu="@menu/activity_main_drawer" /> 

</android.support.v4.widget.DrawerLayout> 
</LinearLayout> 
+0

请显示更改颜色的代码吗? – Saini

+0

现在我不写代码来改变颜色。现在它是默认状态,当我选择一些项目时,它的背景色变为灰色。我编辑了我的帖子 – aldakur

回答

0

解决方案是添加android:checkable =“真”到项目Filtrar por...opciones

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android">  
    <group android:checkableBehavior="single"> 
     <item 
      android:id="@+id/nav_hasiera" 
      android:title="@string/nav_hasiera" /> 
     <item 
      android:id="@+id/nav_oharrak" 
      android:title="@string/nav_oharrak" /> 
     <item 
      android:id="@+id/nav_instalazioak" 

      android:title="@string/nav_instalazioak" /> 

     <item 
      android:id="@+id/nav_gustokoak" 
      android:title="@string/nav_gustokoak" /> 
    </group> 

    <item android:title="@string/filtrar_por"> 
     <menu> 
      <item 
       android:id="@+id/nav_lokalizazioa" 
       android:title="@string/nav_lokalizazio" 
       android:checkable="true"/> 
      <item 
       android:id="@+id/nav_ekintzak" 
       android:title="@string/nav_ekintzak" 
       android:checkable="true"/> 
      <item 
       android:id="@+id/nav_ordutegia" 
       android:title="@string/nav_ordutegia" 
       android:checkable="true"/> 
     </menu> 
    </item> 

    <item android:title="@string/opciones"> 
     <menu> 
      <item 
       android:id="@+id/nav_hizkuntza" 
       android:title="@string/nav_hizkuntza" 
       android:checkable="true"/> 
     </menu> 
    </item> 
</menu> 
0

在你RES /彩色文件夹,添加一个navigation_bg_color .xml文件。

并将下面的代码添加到它:

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

,并使用下面的代码activity_main.xml中:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/mainactivity_linearlayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/donostiakirola_fondo_pantalla" 
    tools:context=".MainActivity"> 

<android.support.v4.widget.DrawerLayout 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" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

    <include 
     layout="@layout/app_bar_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <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:itemTextColor="@color/white" 
     app:itemBackground="@color/navigation_bg_color" 
     app:menu="@menu/activity_main_drawer" /> 

</android.support.v4.widget.DrawerLayout> 
</LinearLayout> 

而且不要忘记在颜色申报颜色值。 xml file:defaultBgColor,selectedBackgroundColor

相关问题