使 Sliding TabLayout 中的标签不滑动

Make tabs in SlidingTabLayout not slide

我最近使用 SlidingTabLayout 制作了一个带有两个选项卡的应用程序。我提到了这个 link

但是我不得不稍微修改一下。我必须添加一个 锁定选项卡滑动的按钮 。并在再次点击时解锁。所以我就是无法让标签不滑动。

我查看了这个问题。但他正在使用其他一些库来做这件事,它不再受支持。我用的是默认的。在那个问题中,CustomViewPager 扩展了 android.support.v4.view.ViewPager。在我的项目中,ViewPagerAdapter 扩展了 FragmentStatePagerAdapter。

任何帮助都会非常有用。谢谢。

您可以制作一个自定义的 ViewPager 来扩展 ViewPager 并设置一个禁用和启用滑动的方法。

您可以通过在您的代码中添加如下所示的 class 来实现。然后不要使用 ViewPager,只需在您的代码中使用 CustomViewPager:

public class CustomViewPager extends ViewPager {

    private boolean enabled;

    public CustomViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.enabled = true;
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (this.enabled) {
             return super.onTouchEvent(event);
        }
        return false;
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
        if (this.enabled) {
            return super.onInterceptTouchEvent(event);
        }
        return false;
    }

    public void setPagingEnabled(boolean enabled) {
        this.enabled = enabled;
    }
}

您可以disable/enable通过调用滑动:setPagingEnabled(boolean enabled).