我正在尝试更改“活动主抽屉”的文本颜色,但找不到更改它的位置。我想将其更改为较浅的颜色(白色)
这是我的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"/>
您需要使用
ColorStateList对象初始化要使用的颜色。
在为每种状态设置颜色之后,您可以设置navitaionView itemTextColor(navigation.setItemTextColor(yourCustomColorStateList);
这是我得到答案的地方
这是另一个与Stackoverflow相关的问题
有关所有可用状态的Android官方文档
示例:在您的主类的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
*/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句