答案 0 :(得分:5)
科特林风格的单缸纸:
bottom_navigation.menu.forEach { it.isEnabled = false }
答案 1 :(得分:2)
<android.support.design.widget.BottomNavigationView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="false"
android:contextClickable="false"/>
试试此代码。禁用点击。
动态使用Java pr Kotlin,您可以禁用click。
bottomView.setEnabled(false);
bottomView.setFocusable(false);
bottomView.setFocusableInTouchMode(false);
bottomView.setClickable(false);
bottomView.setContextClickable(false);
bottomView.setOnClickListener(null);
将onClick Listener设置为Null有助于禁用单击事件
答案 2 :(得分:1)
如果要禁用底部导航视图,则可以禁用菜单项
private void enableBottomBar(boolean enable){
for (int i = 0; i < mBottomMenu.getMenu().size(); i++) {
mBottomMenu.getMenu().getItem(i).setEnabled(enable);
}
}
答案 3 :(得分:0)
您可以设置其子视图的触控侦听器。使用android-ktx的示例:
bottomNav.children.forEach {
(it as? ViewGroup)?.children?.forEach {
it.setOnTouchListener { _, _ -> true } // or null to enable touch again
}
}
答案 4 :(得分:0)
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);
}
}
}
}