BottomNavigationView enlace a ViewPager, cuando configuro Listener en bottomNavigationView, tengo que hacer clic dos veces para realizar lo que hago

aquí está mi código:

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) } 

}

Solo cuando hago clic dos veces en la misma pestaña, se ejecutará viewpager.setCurrentItem (). Pero cuando uso Java en lugar de kotlin para ejecutar el mismo código, puedo get lo que quiero. ¿Alguien podría ayudarme?

Está utilizando setOnNavigationItemReselectedListener() que solo se activa cuando se setOnNavigationItemSelectedListener() seleccionar una pestaña, no el setOnNavigationItemSelectedListener() apropiado setOnNavigationItemSelectedListener() que se setOnNavigationItemSelectedListener() cuando se selecciona una pestaña por primera vez.

Prueba esto

tabLayout.setupWithViewPager(viewPager);

esto sincronizará automáticamente tanto ViewPager como TabLayout

  • Inyectar una instancia falla con Kotlin & Guice
  • Clase Mock Kotlin en testing de unidad Java
  • kotlin int boxed identity
  • ¿Cómo extraigo partes de código en variables locales en Kotlin cuando uso el generador HTML de Ktor?
  • Crear una ArrayList de elementos únicos en una ArrayList
  • Cómo usar generics en un object complementario
  • Android (Kotlin): sobrescribe el nombre para la input del logging de llamadas
  • Señal / evento AboutToQuit en Android
  • ¿Cómo puedo crear un "forEach" que devuelva un object que sea un receptor a la function de consumo?
  • reference no resuelta a class, methods
  • Mapa de Kotlin y networkingucir el set de cadenas para mapear <String, Any!>