android - 使 Sliding TabLayout 中的标签不滑动

标签 android android-fragments pagerslidingtabstrip

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

Sliding Tabs

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

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

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

最佳答案

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

您可以通过在代码中添加如下所示的类来做到这一点。然后不要使用 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;
    }
}

您可以通过调用来禁用/启用滑动:setPagingEnabled(boolean enabled)。

关于android - 使 Sliding TabLayout 中的标签不滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34413217/

相关文章:

android - 使用 libvpx x86 android 构建项目失败并出现 undefined reference 错误

android - setText 从 ListView 项目到 TextView(在 ListView 之外)

Android:Merge-Tag 不适用于 fragment

android - FindViewById 在 fragment 中

android - 错误膨胀类 com.astuetz.PagerSlidingTabStrip

java - 重新访问 fragment 后,在 fragment 内设置文本不起作用

android - 如何使用 MPAndroidChart 获取当前可见的 x 轴和 y 轴范围?

java - 当用户从菜单屏幕返回应用程序时,Marker InfoWindowAdapter 导致崩溃

android - 如何在选项卡中添加 float 操作按钮?

java - Eventbus 事件订阅者