如何实现底部导航栏点击指定项时不触发选中状态?
解决底部导航栏点击项不被选中的问题
问题核心在于setOnItemSelectedListener的返回值规则:返回true会让系统标记当前点击项为选中状态,返回false则会保留导航栏原有的选中状态。
针对你的场景,修改代码如下:
binding.bottomNavigation.setOnItemSelectedListener { when (it.itemId) { R.id.referral_bottom_nav -> { // 执行弹窗展示逻辑 false // 返回false,阻止系统选中该项 } // 其他正常跳转的导航项,保持返回true以维持选中逻辑 else -> true } }
- 点击需要弹出弹窗的项时,返回
false,让系统不改变原有选中状态; - 其他需要正常跳转的导航项,依然返回
true,保留原本的选中行为。
这样就能实现点击弹窗项时不跳转、不改变选中状态,同时维持底部导航栏的原有状态。
内容的提问来源于stack exchange,提问作者Ammar Ahsan
相关产品推荐
相关产品推荐

