作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试设置底部导航项的文本颜色。 This guide表示有一个名为 setSelectedItemId
的函数以编程方式设置所选项目。但它需要 25.3.0 支持库,我使用 25.0.0。所以我使用下面的代码来设置选定的项目:
Menu menu = bottomNavigationView.getMenu();
menu.getItem(selectedIndex).setChecked(true);
menu.getItem(currentIndex).setChecked(false);
currentIndex = selectedIndex;
我的颜色设置在这里:
int[] colors = new int[] {
Color.BLACK,
Color.GREEN,
Color.BLUE,
Color.RED
};
int [][] states = new int [][]{
new int[] { android.R.attr.state_enabled, -android.R.attr.state_pressed, -android.R.attr.state_selected}, // enabled
new int[] {-android.R.attr.state_enabled}, // disabled
new int[] {android.R.attr.state_enabled, android.R.attr.state_selected}, // selected
new int[] {android.R.attr.state_enabled, android.R.attr.state_pressed} // pressed
};
bottomNavigationView.setItemTextColor(new ColorStateList(states, colors));
我看不到选定的文本颜色。当我按下项目时,项目文本颜色为红色。我希望项目文本颜色在按下后会变成蓝色(因为我认为它的状态已被选中。)
最佳答案
这个解决方案对我有用。但是在我的情况下,我只使用两种颜色。但基本上
android.R.attr.state_pressed
仅在按下时设置颜色
android.R.attr.state_checked
将在您停止按下按钮后设置颜色。
int[] colors = new int[] {
Color.BLACK,
Color.GREEN,
};
int [][] states = new int [][]{
new int[] { android.R.attr.state_enabled, -android.R.attr.state_checked},
new int[] {android.R.attr.state_enabled, android.R.attr.state_checked}
};
bottomNavigation.setItemTextColor(new ColorStateList(states, colors));
bottomNavigation.setItemIconTintList(new ColorStateList(states, colors));
关于android - BottomNavigationView - 所选项目的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44181498/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!