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
- 返回if / else条件的值,还要运行代码
- “对于超类型的Kotlin Android Studio的直接争论,不允许有预测
- 插件选项org.jetbrains.kotlin.android:package不允许使用多个值
- 从1.0.2 – 1.0.3升级Kotlin:java.lang.NoSuchMethodError:没有虚方法provideInjectedData $ app_compileDebugKotlin()
- Android Kotlin – 每分钟发送通知
- 从gradle运行HelloAndroid?
- Kotlin kapt和android构架组件失败
- 在Android Studio 3.0布局编辑器中渲染错误
- Kotlin – MainActivity扩展AppCompatActivity,onRequestPermissionsResult函数未找到,不能被覆盖