在Kotlin的BottomNavigatorBar中检查菜单项

问题描述 投票:1回答:1

我希望在我的应用程序中有一个按钮,当按下该按钮时,它会成功导航,就好像用户按下了第二个可用按钮(即BottomNavigatorBar)。

我已经通过定义一个静态函数实现了所需的行为,该函数从另一个片段中调用时,如果主要模仿了如果用户按下该按钮会发生的sam行为:

这是它的代码:

  companion object
    {
        […]
        fun calledFun(it: MenuItem, binding: FragmentContainerBinding) {
            when (it.itemId) {

            R.id.nav_assets -> binding.vpPrivate.currentItem = 0
            R.id.nav_incidents -> binding.vpPrivate.currentItem = 1
            R.id.nav_profile -> binding.vpPrivate.currentItem = 2



        }

        it.isChecked=true

    }
}

但是很不幸,it.isChecked,我认为应该将相应的MenuItem变为红色,不起作用,它始终显示在按下我第一次提到的按钮时选择的同一MenuItem上。

经过检查,尽管如此,它确实显示了该MenuItem应该显示的内容。确实,如果我按红色的MenuItem,内容将变为原来的状态。

如何将菜单项标记为用户选择的菜单项?

android kotlin menuitem bottomnavigationview
1个回答
0
投票

如果您只想在导航栏中选择一个项目,则可以执行以下操作

testing.setOnClickListener {
        navView.setOnNavigationItemSelectedListener(null)
        navView.menu.getItem(0).isChecked = true
        navView.setOnNavigationItemSelectedListener(this)
    }

在使用复选框的/单选按钮时,在某种程度上类似,但是当您更改所选状态时,您不想触发功能。

© www.soinside.com 2019 - 2024. All rights reserved.