Android 如何禁用BottomNavigationView单击并触摸?
我想在某些情况下实现行为底部视图无法单击,我想使正在单击的底部视图项不导航到该项,但仍停留在当前项 将onClick Listener设置为Null有助于禁用单击事件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.
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 }