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

标签 android scroll tabs android-viewpager android-tablayout

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

相关文章:

java - Android 布局过渡效果

jquery - 我无法在 android、ios 上滚动窗口

javascript - 每滚动 1 像素添加 1 像素的填充(底部)——jQuery 或 Javascript

java - smartGwt 关闭 clickHandler

android - 为什么没有 Service.onStop 方法?

android - Android 设备中的内存和存储

java - Android 密度和分辨率及其布局

javascript - 按住箭头键在 react 网格中滚动

html - 具有圆形底座的 CSS 选项卡(平滑底座过渡)

javascript - 如何在 ASP.NET 中单击按钮后激活 Bootstrap 选项卡