BottomNavigationView链接到ViewPager,当我设置监听器bottomNavigationView,我必须点击两次执行我所做的
这里是我的代码:
class MainActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) BottomNavigationViewHelper1.disableShiftMode(bottomNavigationView) bottomNavigationView.setOnNavigationItemSelectedListener { item: MenuItem -> when (item.itemId) { R.id.item_home -> { Log.e("Vincent", "++++++++++") viewpager.setCurrentItem(0, true) return@setOnNavigationItemSelectedListener true } R.id.item_finance -> { viewpager.setCurrentItem(1, true) return@setOnNavigationItemSelectedListener true } R.id.item_event -> { viewpager.setCurrentItem(2, true) return@setOnNavigationItemSelectedListener true } R.id.item_mine -> { viewpager.setCurrentItem(3, true) return@setOnNavigationItemSelectedListener true } } true } viewpager.adapter = PagerAdapter(supportFragmentManager) }
}
只有当我点击相同的标签两次,然后viewpager.setCurrentItem()将执行。 但是当我使用Java而不是kotlin来执行相同的代码时,我可以得到我想要的。有没有人能帮助我?
您正在使用setOnNavigationItemReselectedListener()
,该选项仅在重新选择选项卡时触发,而不是在首次选择选项卡时调用的正确的setOnNavigationItemSelectedListener()
方法。
尝试这个
tabLayout.setupWithViewPager(viewPager);
这将自动同步ViewPager
和TabLayout
- 应用程序图标不显示在Android版本大于4.4.2的设备上
- 尝试访问其他活动时应用程序崩溃
- Android kotlin覆盖了onCreateView()方法内的接口方法
- 如何使用kotlin将layoutmanager设置为RecycleView
- 修改内部类的全局变量的值
- Dagger2和Kotlin运行失败的原因是:app:compileDebugKotlinAfterJava
- 错误:com.app.android.dagger.component.AppComponent(unscoped)可能不引用作用域绑定:
- Glot回调在Kotlin成功后
- Android Kotlin将文本字段的值传递给numberPicker