NavigationView更改菜单icon和title颜色变化效果
NavigationView menu默認(rèn)icon和title會隨著菜單狀態(tài)改變而改變,選擇某個菜單后再次打開側(cè)邊菜單后會發(fā)現(xiàn)該菜單的icon和title會變成應(yīng)用的主顏色,其他菜單項仍然為黑色。
如果想關(guān)閉系統(tǒng)默認(rèn)的這個效果,有兩種方式:
1. XML布局文件設(shè)置
<android.support.design.widget.NavigationViewandroid:id="@+id/mainNavView"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/colorPrimary" app:itemIconTint="@color/colorPrimary" app:menu="@menu/main_drawer"> </android.support.design.widget.NavigationView>代碼中的app:itemTextColor=”@color/colorPrimary”設(shè)置菜單title的顏色,app:itemIconTint=”@color/colorPrimary”設(shè)置菜單icon的顏色,如果icon的顏色設(shè)為null,即app:itemIconTint=”@null”,則icon的顏色還是會隨菜單的狀態(tài)改變而改變。
2.代碼中設(shè)置
mainNavView.setItemTextColor(null); mainNavView.setItemIconTintList(null);這樣設(shè)置后icon和title的顏色就是默認(rèn)的了,比如說你的icon原圖是紅色的,那么顯示就是紅色,而title默認(rèn)都是黑色的。
如果你想自定義系統(tǒng)默認(rèn)的顏色變化,也有如下兩種方式:
1.XML資源文件設(shè)置
新建一個selector為根標(biāo)簽的資源文件,名稱姑且為nav_menu_text_color,代碼如下:
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_checked="true" android:color="@color/checked_color"/><item android:state_checked="false" android:color="@color/uncheck_color"/> </selector>然后在java代碼中將該資源文件設(shè)置為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.代碼中設(shè)置
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這樣設(shè)置完成后,選中的菜單icon和title顏色為checked_color,可以隨意設(shè)置你想要的任何顏色,未選中則是uncheck_color
轉(zhuǎn)載于:https://www.cnblogs.com/Free-Thinker/p/8981930.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的NavigationView更改菜单icon和title颜色变化效果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win7 x64 PL/SQL 连接 O
- 下一篇: JAVA 的普通加法运算