对不起我的英语。
我需要动态设置 NavigationView 的项目文本和项目图标颜色,但由于某些原因这不起作用。
这将是一个错误还是我做错了什么? XML 运行良好,但是当我执行以下操作时,不是:
我的代码:
navigationView = (NavigationView) findViewById(R.id.nav_view);
int[][] states = new int[][] {
new int[] { }, // default
new int[] { android.R.attr.state_focused, android.R.attr.state_pressed }, // pressed
new int[] { android.R.attr.state_selected } // selected
};
int[] colors = new int[] {
colorDefault,
colorFocused,
colorSelected
};
ColorStateList myList = new ColorStateList(states, colors);
navigationView.setItemTextColor(myList);
navigationView.setItemIconTintList(myList);
出于某种原因,我只得到第一种颜色:(
最佳答案
int[][] states = new int[][] {
new int[] { android.R.attr.state_selected } // selected
new int[] { } // default
};
int[] colors = new int[] {
colorSelected,
colorDefault
};
ColorStateList colorList = new ColorStateList(states, colors);
navigationView.setItemTextColor(colorList);
仅使用选中的和默认的导航文本状态。正如马泰所说。您需要按最具体情况的顺序使用。
关于java - android,NavigationView的setItemTextColor和setItemIconTinList没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33114154/