我有 ViewPager
与连接 TabLayout
.如果我使用 viewPager.setCurrentItem(position, true)
显示选项卡布局上的正确选项卡(TabLayout
自动滚动到所选选项卡)。但我想用 viewPager.setCurrentItem(position, false)
.在这种情况下,选择了正确的选项卡(突出显示),但问题是 TabLayout
不会滚动到这个选定的选项卡。它是隐藏的,我必须手动滑动 TabLayout
查看选择了哪个选项卡。这是一个错误吗?我可以手动强制 TabLayout
滚动到选定的选项卡?
更新:
要清楚。我的选项卡已正确选择,正确的 View 显示在 ViewPager
中在执行 viewPager.setCurrentItem(position, true)
时或 viewPager.setCurrentItem(position, false)
.但是对于第二个,TabLayout
不滚动所以我选择(突出显示)Tab
是隐藏的。
更新 2:
我已经用示例应用打开了问题:https://issuetracker.google.com/issues/72390853
最佳答案
同样的问题,我使用这个解决方法等待修复:
在设置 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
}
}
关于android - viewPager.setCurrentItem(position, false) 选择,但不滚动到突出显示的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48407576/