这是我的代码:
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来执行相同的代码时,我可以得到我想要的东西。可以有人帮助我吗?
答案 0 :(得分:2)
您使用的是setOnNavigationItemReselectedListener()
,只有当标签重新选择时才触发,而不是首次选择标签时调用的正确setOnNavigationItemSelectedListener()
方法。
答案 1 :(得分:-1)
试试这个
tabLayout.setupWithViewPager(viewPager);
这会自动同步ViewPager
和TabLayout