专业网站建设联系电话,呼市互联网公司排名,网站建设需求策划书,企业官方网站开发外包NavigationView menu默认icon和title会随着菜单状态改变而改变#xff0c;选择某个菜单后再次打开侧边菜单后会发现该菜单的icon和title会变成应用的主颜色#xff0c;其他菜单项仍然为黑色。 如果想关闭系统默认的这个效果#xff0c;有两种方式#xff1a; 1. XML布局文件… NavigationView menu默认icon和title会随着菜单状态改变而改变选择某个菜单后再次打开侧边菜单后会发现该菜单的icon和title会变成应用的主颜色其他菜单项仍然为黑色。 如果想关闭系统默认的这个效果有两种方式 1. XML布局文件设置 android.support.design.widget.NavigationViewandroid:idid/mainNavViewandroid:layout_widthwrap_contentandroid:layout_heightmatch_parentandroid:layout_gravitystartandroid:fitsSystemWindowstrue app:headerLayoutlayout/nav_header_main app:itemTextColorcolor/colorPrimary app:itemIconTintcolor/colorPrimary app:menumenu/main_drawer /android.support.design.widget.NavigationView 代码中的app:itemTextColor”color/colorPrimary”设置菜单title的颜色app:itemIconTint”color/colorPrimary”设置菜单icon的颜色如果icon的颜色设为null即app:itemIconTint”null”则icon的颜色还是会随菜单的状态改变而改变。 2.代码中设置 mainNavView.setItemTextColor(null);
mainNavView.setItemIconTintList(null); 这样设置后icon和title的颜色就是默认的了比如说你的icon原图是红色的那么显示就是红色而title默认都是黑色的。 如果你想自定义系统默认的颜色变化也有如下两种方式 1.XML资源文件设置 新建一个selector为根标签的资源文件名称姑且为nav_menu_text_color代码如下 selector xmlns:androidhttp://schemas.android.com/apk/res/androiditem android:state_checkedtrue android:colorcolor/checked_color/item android:state_checkedfalse android:colorcolor/uncheck_color/ /selector 然后在java代码中将该资源文件设置为icon和title的颜色即可。 mainNavView.setItemTextColor(resources.getColorStateList(R.drawable.nav_menu_text_color, null)); mainNavView.setItemIconTintList(resources.getColorStateList(R.drawable.nav_menu_text_color, null)); 2.代码中设置 int[][] states new int[][]{
new int[]{ -android.R.attr.state_checked}, new int[]{android.R.attr.state_checked} }; int[] colors new int[]{ getResources().getColor(R.color.checked_color), getResources().getColor(R.color.uncheck_color) }; ColorStateList csl new ColorStateList(states, colors); mainNavView.itemTextColor csl mainNavView.itemIconTintList csl 这样设置完成后选中的菜单icon和title颜色为checked_color可以随意设置你想要的任何颜色未选中则是uncheck_color 转载于:https://www.cnblogs.com/Free-Thinker/p/8981930.html