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