如何在 运行 时间以编程方式设置 BottomNavigationView 背景颜色
How to programatically set BottomNavigationView background colour at run time
我有一个 BottomNavigationView*
标签栏,我想设置背景颜色,但是直到运行时我才知道颜色。似乎 setItemBackground
需要资源 ID。
有没有什么方法可以用 GradientDrawable
或类似的东西创建资源,然后传递新的资源 ID?
或者有没有其他方法可以不使用我错过的 XML 并允许我只传递颜色或 Drawable
?
这么难好像很奇怪...
*实际上使用 BottomNavigationViewEx
这是它从这里的扩展,但它对我的问题没有太大影响:https://github.com/ittianyu/BottomNavigationViewEx
我不知道在 BottomNavigationView
中是如何完成的,即使它是可能的(至少我没有在文档中找到任何指出简单解决方案的内容)但就我个人而言,我也试过 AHBottomNavigation
似乎更完整。它还使您有可能通过以下方式实现您想要的目标:
bottomNavigation.setDefaultBackgroundColor(Color.parseColor("#FEFEFE"));
Link 到 git 项目:HERE
BottomNavigationViewEx
继承自 View
,它有一个 setBackground(Drawable drawable)
方法。如果您尝试设置背景,请使用它。如果您想更改项目的背景,您将不得不子类化或创建 BottomNavigationViewEx
的自定义实现,因为它看起来不支持动态生成的资源。但是我没有看到任何禁止这样的事情。
在你的activity中你可以直接使用如:
bottomNavigationView.setItemBackgroundResource((R.color.colorxyz));
希望这对你有用。
我有一个 BottomNavigationView*
标签栏,我想设置背景颜色,但是直到运行时我才知道颜色。似乎 setItemBackground
需要资源 ID。
有没有什么方法可以用 GradientDrawable
或类似的东西创建资源,然后传递新的资源 ID?
或者有没有其他方法可以不使用我错过的 XML 并允许我只传递颜色或 Drawable
?
这么难好像很奇怪...
*实际上使用 BottomNavigationViewEx
这是它从这里的扩展,但它对我的问题没有太大影响:https://github.com/ittianyu/BottomNavigationViewEx
我不知道在 BottomNavigationView
中是如何完成的,即使它是可能的(至少我没有在文档中找到任何指出简单解决方案的内容)但就我个人而言,我也试过 AHBottomNavigation
似乎更完整。它还使您有可能通过以下方式实现您想要的目标:
bottomNavigation.setDefaultBackgroundColor(Color.parseColor("#FEFEFE"));
Link 到 git 项目:HERE
BottomNavigationViewEx
继承自 View
,它有一个 setBackground(Drawable drawable)
方法。如果您尝试设置背景,请使用它。如果您想更改项目的背景,您将不得不子类化或创建 BottomNavigationViewEx
的自定义实现,因为它看起来不支持动态生成的资源。但是我没有看到任何禁止这样的事情。
在你的activity中你可以直接使用如:
bottomNavigationView.setItemBackgroundResource((R.color.colorxyz));
希望这对你有用。