选中后,我想在每个“底部导航 View 项目”的顶部放置一个栏。如下图所示,但我没有找到方法。
我不知道该怎么做
最佳答案
可以通过在底部导航上添加一个 View 来实现,请检查下面的代码,也可以使用它在底部导航项上添加任何 View ,例如徽章,小图标等。
栏的布局 xml
<?xml version="1.0" encoding="utf-8"?>
<View xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="100dp"
android:layout_height="2dp"
android:layout_gravity="center_horizontal"
android:background="@color/red"
android:gravity="center"/>
Controller (显示/隐藏)
class BottomNavigationHelper {
fun showBadge(context: Context, bottomNavigationView: BottomNavigationView, @IdRes itemId: Int) {
removeBadge(bottomNavigationView, itemId)
val itemView = bottomNavigationView.findViewById<BottomNavigationItemView>(itemId)
val badge = LayoutInflater.from(context).inflate(R.layout.layout_red_badge, bottomNavigationView, false)
itemView.addView(badge)
}
fun removeBadge(bottomNavigationView: BottomNavigationView, @IdRes itemId: Int) {
val itemView = bottomNavigationView.findViewById<BottomNavigationItemView>(itemId)
if (itemView.childCount == 3) {
itemView.removeViewAt(2)
}
}
}
示例调用
BottomNavigationHelper().showBadge(mContext, bottomNavigationView, R.id.navigation_home)