TabLayout 切换 Tab 时,滚动条可能会从先滑动到原先选中的位置,导致滑动抖动。这可能是因为在切换 Tab 时,TabLayout 会重新计算每个 Tab 的位置和大小,导致滚动条位置出现小幅度的变化,从而出现滑动抖动的现象。

为了避免这种情况,可以尝试以下方法:

  1. 禁用 TabLayout 滚动条

可以在 TabLayout 的布局文件中添加以下属性来禁用滚动条:

app:tabIndicatorHeight="0dp"

这样就可以禁用滚动条,避免出现滑动抖动的问题。

  1. 自定义 TabLayout 滚动条

如果需要保留滚动条,可以考虑自定义 TabLayout 滚动条,使其更加平滑。可以使用自定义的 Drawable 来设置滚动条,例如使用一个渐变色的 Drawable 来模拟滚动条。同时,还可以在 TabLayout 的 onTabSelected 方法中添加动画效果,使滚动条滑动更加平滑。

tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
    @Override
    public void onTabSelected(TabLayout.Tab tab) {
        View view = tab.getCustomView();
        if (view != null) {
            view.animate().scaleX(1.1f).scaleY(1.1f).setDuration(200).start();
        }
    }

    @Override
    public void onTabUnselected(TabLayout.Tab tab) {
        View view = tab.getCustomView();
        if (view != null) {
            view.animate().scaleX(1.0f).scaleY(1.0f).setDuration(200).start();
        }
    }

    @Override
    public void onTabReselected(TabLayout.Tab tab) {

    }
});

这样可以使滚动条滑动更加平滑,避免出现滑动抖动的问题。

TabLayout 切换 Tab 滚动条抖动问题解决方案

原文地址: https://www.cveoy.top/t/topic/oJOr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录