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

时间:2018-01-23 17:29:00

标签: android scroll tabs android-viewpager android-tablayout

ViewPager已连接TabLayout。如果我使用viewPager.setCurrentItem(position, true),则会显示选项卡布局上的正确选项卡(TabLayout会自动滚动到所选选项卡)。但我想使用viewPager.setCurrentItem(position, false)。在这种情况下,选择正确的选项卡(突出显示),但问题是TabLayout不会滚动到此选定的选项卡。它是隐藏的,我必须手动滑动TabLayout才能看到选中的标签。这是一个错误吗?我可以手动强制TabLayout滚动到所选标签吗?

更新

要清楚。正确选择了我的标签,并且在执行ViewPagerviewPager.setCurrentItem(position, true)时,viewPager.setCurrentItem(position, false)会显示正确的视图。但是对于第二个,TabLayout不会滚动,因此隐藏了我选中的(突出显示的)Tab

更新2:

我已使用示例应用程序打开了该问题:https://issuetracker.google.com/issues/72390853

1 个答案:

答案 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
    }
}