我有一个BottomNavigationView*
标签栏,我想设置背景颜色,但是直到运行时才会有颜色。似乎setItemBackground
需要资源ID。
是否有某种方法可以从GradientDrawable
或类似的东西创建资源,然后传递新的资源ID?
或者是否有其他方法可以在不使用我错过的XML的情况下执行此操作,并允许我传递颜色或Drawable
?
看起来很奇怪,这太难了......
*实际上使用的BottomNavigationViewEx
是此处的扩展,但它对我的问题没有太大影响:https://github.com/ittianyu/BottomNavigationViewEx
答案 0 :(得分:2)
我不知道它是如何在BottomNavigationView
中完成的,或者即使它是可能的(至少我没有在文档中找到任何指出简单解决方案的内容)但个人而言,我也有试过AHBottomNavigation
,似乎更完整。它还为您提供了实现目标的可能性:
bottomNavigation.setDefaultBackgroundColor(Color.parseColor("#FEFEFE"));
链接到git项目:HERE
答案 1 :(得分:1)
BottomNavigationViewEx
继承自View
,其setBackground(Drawable drawable)
方法。如果您尝试设置背景,请使用它。如果要更改项目的背景,则必须子类化或创建BottomNavigationViewEx
的自定义实现,因为它看起来不支持动态生成的资源。但我没有看到任何禁止此类事情的事情。
答案 2 :(得分:0)
在您的活动中,您可以直接使用诸如:
bottomNavigationView.setItemBackgroundResource((R.color.colorxyz));
希望这对您有用。