val item = bottomNavView.menu.findItem(R.id.profile_item) // change to the id of the profile item
val border = ResourcesCompat.getDrawable(
resources,
R.drawable.circle_border, null
) as GradientDrawable
val layerDrawable = LayerDrawable(arrayOf(item.icon, border))
item.icon = layerDrawable
2条答案
按热度按时间h43kikqp1#
是的,可以在BottomNavigationView中的所选标签周围添加一个环,类似于Instagram在单击个人资料标签时的操作方式。实现此目的的一种方法是为BottomNavigationView创建自定义可绘制对象并将其设置为背景。下面是如何做到这一点的示例:
在项目的drawable文件夹中创建名为selector_bottom_navigation_view. xml的新可绘制资源文件。
将以下代码添加到selector_bottom_navigation_view. xml文件中:
这将创建一个选择器,该选择器将在所选选项卡周围绘制一个带有描边和纯色的椭圆形,并将椭圆形的大小设置为24 dp x 24 dp。
将BottomNavigationView的背景设置为布局文件中的selector_bottom_navigation_view可绘制对象:
您可以通过更改selector_bottom_navigation_view. xml文件中的android:colorPrimary和android:colorAccent的值来自定义笔划和纯色的颜色。就是这样!现在,当选择一个选项卡时,它将被高亮显示,并在其周围显示一个圆圈。
vfwfrxfs2#
您将
app:itemBackground
设置为选中的状态选择器,该状态选择器具有居中的椭圆形状选择器:
drawable/rounded_selector
:并将其设置为
BottomNavigationView
:编辑
如果你只想让其中一个标签显示圆圈选择器,你会怎么做?就像instagram只对个人资料做的那样。
您可以通过将可绘制层组合到LayerDrawable中来将其设置为菜单项,然后将其设置回菜单项:
可绘制/圆形边界
在代码中: