BottomNavigationView ссылку на ViewPager, когда я установил Listener в 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() вкладки, а не в setOnNavigationItemSelectedListener() который вызывается, когда сначала выбирается вкладка.

Попробуй это

tabLayout.setupWithViewPager(viewPager);

это автоматически синхронизирует ViewPager и TabLayout