Android 如何将条件添加到BottomNavigationView+;导航组件?
我正在尝试使用导航组件和BottomNavigationView为我的片段设置条件导航。 当前设置(无条件): 常规导航工作正常,但我想根据条件限制用户与底部导航的交互。如果在单击菜单项时不满足条件,这只会导致显示一个祝酒词,而不是导航到下一个片段 我已经查过了,但是这里提到的解决方案需要先导航到下一个片段,然后检查条件——但我想避免这种情况Android 如何将条件添加到BottomNavigationView+;导航组件?,android,android-navigation,android-bottomnav,Android,Android Navigation,Android Bottomnav,我正在尝试使用导航组件和BottomNavigationView为我的片段设置条件导航。 当前设置(无条件): 常规导航工作正常,但我想根据条件限制用户与底部导航的交互。如果在单击菜单项时不满足条件,这只会导致显示一个祝酒词,而不是导航到下一个片段 我已经查过了,但是这里提到的解决方案需要先导航到下一个片段,然后检查条件——但我想避免这种情况 非常感谢。公开LiveData,它将对禁用的@id进行流式处理 class MainViewModel{ val disableNavigation
非常感谢。公开
LiveData
,它将对禁用的@id
进行流式处理
class MainViewModel{
val disableNavigation = MutableLiveData<@Ids Int>()
fun invalidateNavigation() {
val canNavigate = ....
if(!canNavigate){
disableNavigation.value = R.id.bottom_nav_item_x
}
}
}
嘿,尼古拉,谢谢你的输入-我以前考虑过这个问题,但是在尝试点击一个禁用的ID时,无法为用户添加“错误消息”。你知道如何解决这个问题吗?我试图为我的底部导航放置NavigationItemSelectedListener,但这被“setupWithNavController”覆盖。非常感谢您应该在底部导航视图中禁用该项。您还可以在同一块中显示错误消息,因为它将被称为“导航视图中的所有菜单项均已禁用”。
class MainViewModel{
val disableNavigation = MutableLiveData<@Ids Int>()
fun invalidateNavigation() {
val canNavigate = ....
if(!canNavigate){
disableNavigation.value = R.id.bottom_nav_item_x
}
}
}
mainViewModel.observe(viewLifecycleOwner){
//disable the id here
//re-enable the rest of the items
}