2017-02-11 11 views
0

оттенок Im пытается изменить цвет текста и значок оттенок цвета навигационном следующим образом,Невозможно изменить цвет пункт текст и значок пункт

<?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:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

     <include layout="@layout/include_list_viewpager"/> 


     <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:background="@color/colorPrimary" 
      android:fitsSystemWindows="true" 
      android:minHeight="?attr/actionBarSize" 
      app:itemIconTint="@android:color/white" 
      android:theme="@style/AppTheme.NavigationView" 
      app:itemTextAppearance="?android:attr/textAppearanceSmall" 
      app:itemTextColor="@android:color/white" 
      app:menu="@menu/drawer_view"/> 

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

Но это оленья кожа помогла мне изменить color..So Я попытался установить цвет программно следующим образом,

// FOR NAVIGATION VIEW ITEM TEXT COLOR 
     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 csl = 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 csl2 = new ColorStateList(states, colors); 

     navigationView.setItemTextColor(csl); 
     navigationView.setItemIconTintList(csl2); 

Хотя я попытался установить itemTextColor и itemIconTint белый программно, а также через XML, это не осуществление. Его еще серый цвет. Как я могу разобраться в этом?

UPDATE:

Я конечно попытался установить следующую тему для navigationview

<style name="AppTheme.NavigationView"> 
     <item name="android:textColorPrimary">#FFFFFF</item> 
     <item name="android:textColorSecondary">#FFFFFF</item> 
    </style> 
+0

Вы можете использовать собственную тему для изменения TextColor и icontint of navigationview – tahsinRupam

+0

Я, конечно же, попробовал. Я обновил вопрос с тем же –

ответ

1

попробовать использовать пользовательский Color State вытяжки для изменения цвета текста и значка пункта меню.

app:itemIconTint="@color/custom_text_color" //icon color 
app:itemTextColor="@color/custom_text_color" //text color 
app:itemBackground="@drawable/menu_background_color" //background 

в Рез/цвет/custom_text_color.xml

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

Также в Рез/рисуемых/menu_background_color.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@android:color/transparent" android:state_checked="false"/> 
    <item android:drawable="@color/colorPrimary" android:state_checked="true"/> 
</selector> 
+0

, пытаясь его ...... –

+0

все еще нет эффектов ... :( –

+0

- это программно создающие пункты меню? – rafsanahmad007