gpt4 book ai didi

android - BottomNavigationView - 所选项目的文本颜色

转载 作者:行者123 更新时间:2023-11-30 00:31:54 28 4
gpt4 key购买 nike

我尝试设置底部导航项的文本颜色。 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com