我ViewPager
已连接TabLayout
。如果我使用viewPager.setCurrentItem(position, true)
,则会显示选项卡布局上的正确选项卡(TabLayout
会自动滚动到所选选项卡)。但我想使用viewPager.setCurrentItem(position, false)
。在这种情况下,选择正确的选项卡(突出显示),但问题是TabLayout
不会滚动到此选定的选项卡。它是隐藏的,我必须手动滑动TabLayout
才能看到选中的标签。这是一个错误吗?我可以手动强制TabLayout
滚动到所选标签吗?
更新
要清楚。正确选择了我的标签,并且在执行ViewPager
或viewPager.setCurrentItem(position, true)
时,viewPager.setCurrentItem(position, false)
会显示正确的视图。但是对于第二个,TabLayout
不会滚动,因此隐藏了我选中的(突出显示的)Tab
。
更新2:
我已使用示例应用程序打开了该问题:https://issuetracker.google.com/issues/72390853
答案 0 :(得分:0)
同一问题,我使用此替代方法等待修复:
设置viewPager2和tabLayout之后,在设置当前项目之前要延迟一下。 我使用tabLayout的隐身性来显示更流畅。
binding.tabLayout.isInvisible = true
binding.viewPager.apply {
adapter = FragmentStateAdapter(this)
TabLayoutMediator(binding.tabLayout, this) { tab, position ->
tab.text = "text"
}.attach()
lifecycleScope.launch {
delay(100)
setCurrentItem(X, false)
binding.tabLayout.isInvisible = false
}
}