2015-11-14 73 views
1

我正在嘗試更改活動主抽屜的文本顏色,但無法找到要更改它的位置。我想將其更改爲較亮的顏色(白色)如何更改Android中活動主抽屜的文本顏色

enter image description here

這是什麼在我的activity_main_drawer.xml的

<?xml version="1.0" encoding="utf-8"?> 

<group android:checkableBehavior="single"> 
    <item android:id="@+id/nav_city1" android:icon="@android:drawable/ic_menu_mapmode" 
     android:title="Label1" /> 
    <item android:id="@+id/nav_city2" android:icon="@android:drawable/ic_menu_compass" 
     android:title="Label2" /> 
    <item android:id="@+id/nav_city3" android:icon="@android:drawable/ic_menu_myplaces" 
     android:title="Label3" /> 
    <item android:id="@+id/nav_city4" android:icon="@android:drawable/ic_input_get" 
     android:title="Label4" /> 
</group> 

<item android:title="Account"> 
    <menu> 
     <item android:id="@+id/nav_profile" android:icon="@android:drawable/ic_menu_edit" 
      android:title="Profile" /> 
     <item android:id="@+id/nav_settings" android:icon="@android:drawable/ic_menu_manage" 
      android:title="Settings" /> 
    </menu> 
</item> 

我試着插入android:textColor無處不在,但它不工作。

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
android:textColor="#FFFFFF"> 

<group android:checkableBehavior="single" android:textColor="#FFFFFF"> 
    <item android:id="@+id/nav_cities" android:icon="@android:drawable/ic_menu_mapmode" 
     android:title="Cities" android:textColor="#FFFFFF"/> 
+0

顯示你的顏色XML如果你have..and抽屜XML –

+0

檢查此http的列表項:/ /堆棧溢出。com/questions/22192291 /如何更改狀態欄中的顏色android – Destro

+0

@TwoThumbSticks是否使用了android設計支持庫中提供的** NavigationView **來實現導航抽屜? – Droidwala

回答

1
  • 需要初始化要使用
    ColorStateList對象使用的顏色。

  • 每個狀態設定的顏色設置好後navitaionView itemTextColor(navigation.setItemTextColor(yourCustomColorStateList);

This is where I got the answer
Here is another related Stackoverflow questions
Official Android documentation of all the available kind of state

例如: 使用此在你的主類的onCreate方法裏面

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 

    /** 
    * start of code configuration for color of text of your Navigation Drawer/Menu based on state 
    */ 
    int[][] state = new int[][] { 
      new int[] {-android.R.attr.state_enabled}, // disabled 
      new int[] {android.R.attr.state_enabled}, // enabled 
      new int[] {-android.R.attr.state_checked}, // unchecked 
      new int[] { android.R.attr.state_pressed} // pressed 

    }; 

    int[] color = new int[] { 
      Color.WHITE, 
      Color.WHITE, 
      Color.WHITE, 
      Color.WHITE 
    }; 

    ColorStateList colorStateList1 = new ColorStateList(state, color); 


    // FOR NAVIGATION VIEW ITEM ICON COLOR 
    int[][] states = new int[][] { 
      new int[] {-android.R.attr.state_enabled}, // disabled 
      new int[] {android.R.attr.state_enabled}, // enabled 
      new int[] {-android.R.attr.state_checked}, // unchecked 
      new int[] { android.R.attr.state_pressed} // pressed 

    }; 

    int[] colors = new int[] { 
      Color.WHITE, 
      Color.WHITE, 
      Color.WHITE, 
      Color.WHITE 
    }; 
    ColorStateList colorStateList2 = new ColorStateList(states, colors); 
    navigationView.setItemTextColor(colorStateList1); 
    navigationView.setItemIconTintList(colorStateList2); 
    /** 
    * end of code configuration for color of text of your Navigation Drawer/Menu based on state 
    */ 
+0

很好解釋和代碼作品像一個魅力謝謝你! – TwoThumbSticks

0

看來您的使用是新的Android Support Design Library。我沒有用過它。 我覺得你需要有一些標題佈局它由TextView組成,如上圖所示。 稍後在Java代碼中,您可以訪問標題佈局並使用findViewById()來獲取TextView

讓我知道它是否有效。

2

您可以只使用app:itemTextColor您NavigationView內實現通過XML一樣:

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_height="match_parent" 
    android:layout_width="240dp" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" 
    android:background="@color/colorWhite" 
    app:headerLayout="@layout/drawer_header" 
    app:menu="@menu/drawer_view" 
    app:itemTextColor="@color/colorWhite"> 

添加上面一行到你的XML應該在你的情況下工作。
希望它有幫助!

0

可以使用應用:itemTextColor您NavigationVi EW

<?xml version="1.0" encoding="utf-8"?> 
 
<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:background="#FFDFE3" 
 
    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" 
 
     <!-- here you can change color of items like this. --> 
 
     app:itemTextColor="@color/colorHeaderBackground" 
 
     app:headerLayout="@layout/nav_header_main" 
 
     app:menu="@menu/activity_main_drawer" /> 
 

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

相關問題