Android 如何禁用BottomNavigationView单击并触摸?

Android 如何禁用BottomNavigationView单击并触摸?,android,behavior,bottomnavigationview,Android,Behavior,Bottomnavigationview,我想在某些情况下实现行为底部视图无法单击,我想使正在单击的底部视图项不导航到该项,但仍停留在当前项 将onClick Listener设置为Null有助于禁用单击事件 bottomView.menu.forEach { it.isEnabled = false } 可以设置其子视图的触摸侦听器。使用android ktx的示例: bottomNav.children.forEach { (it as? ViewGroup)?.children?.forEach { it.

我想在某些情况下实现行为底部视图无法单击,我想使正在单击的底部视图项不导航到该项,但仍停留在当前项

将onClick Listener设置为Null有助于禁用单击事件

bottomView.menu.forEach { it.isEnabled = false }

可以设置其子视图的触摸侦听器。使用android ktx的示例:

bottomNav.children.forEach {
   (it as? ViewGroup)?.children?.forEach {
       it.setOnTouchListener { _, _ -> true } // or null to enable touch again
   }
}

如果要禁用底部导航视图,可以禁用菜单项

private void enableBottomBar(boolean enable){
    for (int i = 0; i < mBottomMenu.getMenu().size(); i++) {
        mBottomMenu.getMenu().getItem(i).setEnabled(enable);
    }
}
private void enableBottomBar(布尔启用){
对于(int i=0;i
公共类CustomBottomNavigationView扩展了BottomNavigationView{
...
@凌驾
已启用公共void集(已启用布尔值){
super.setEnabled(已启用);
视图组菜单视图=(视图组)getChildAt(0);
如果(菜单视图!=null){
对于(int i=0;i
Kotlin风格单衬里:

bottom_navigation.menu.forEach { it.isEnabled = false }

在这里添加代码我只是想实现,但不知道如何实现,我仍然可以单击并选择itembottomView.setOnClickListener(null);试试这个。科特林一班机FTW!
private void enableBottomBar(boolean enable){
    for (int i = 0; i < mBottomMenu.getMenu().size(); i++) {
        mBottomMenu.getMenu().getItem(i).setEnabled(enable);
    }
}
public class CustomBottomNavigationView extends BottomNavigationView {

    ...

    @Override
    public void setEnabled(boolean enabled) {
        super.setEnabled(enabled);
        ViewGroup menuView = (ViewGroup) getChildAt(0);
        if (menuView != null) {
            for (int i = 0; i < menuView.getChildCount(); i++) {
                menuView.getChildAt(i).setEnabled(enabled);
            }
        }
    }
}
bottom_navigation.menu.forEach { it.isEnabled = false }