viewPager.setCurrentItem(position, false) 选择,但不滚动到突出显示的 Tab

App*_*evo 7 tabs android scroll android-viewpager android-tablayout

我有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

Ben*_*det 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
    }
}
Run Code Online (Sandbox Code Playgroud)