引言
闲来无事的情况下,打算尝试一下Google的一些新控件。所以新建了一个项目,在把所有环境都配置好之后,常用的BottomNavigationView出现了一个非常奇怪的问题,底部menu出现了一个奇怪的选中背景,而这个背景并不是我做了什么设置出现。同样的代码移植到老工程也并没有出现。
使用的MD版本是
implementation 'com.google.android.material:material:1.6.1'
开始以为是个简单的问题,但是全网搜索之后却发现没有相关文章,于是研究了一下这个问题。
开始解决
-
首先就是先找到这是哪里加的背景,打开布局显示之后明显能发现,在我自己设置的icon确实周围多了一圈椭圆的背景,这就证明了不是我自己写的drawable的问题。
众所周知,BottomNavigationView中每个子item都是一个NavigationBarMenuView,所以接下来需要去看NavigationBarMenuView中这个背景是加在哪里了
-
本来看着NavigationBarMenuView的代码不多,准备是读一下来的,直到我在这个view的参数中发现了
按照Google在MD工具中一罐6的命名做法,是这个东西无疑了,顺着这个参数找到API方法
bottomNavigationView.isItemActiveIndicatorEnabled = false
设置之后运行
-
问题虽然解决了,但是又出现另外一个问题,这个控件为啥在老工程中没有这个问题。
过程就不说了,直接说原因吧,BottomNavigationView的默认背景中包含了这个指示灯的问题。所以解决方案除了在代码中设置外,还可以直接修改默认主题解决
同样能解决这个问题
后记
- 其实这不算是一个太复杂的问题,但是全网竟然没有搜索到什么有用的文章,看来国内距离全面使用MD控件还是有很长的距离啊。