【问题标题】:Make tabs in SlidingTabLayout not slide使滑动选项卡布局中的选项卡不滑动
【发布时间】:2015-12-22 10:08:15
【问题描述】:

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

但是我不得不稍微修改它。我必须添加一个锁定标签滑动的按钮。并在再次单击时将其解锁。所以我就是不能让标签不滑动。

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

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

【问题讨论】:

  • 你能发布你的代码吗?
  • 发布修改后的代码
  • 是一样的。我没有修改它。如果我知道不滑动标签的逻辑,我可以继续进行。谢谢
  • 所以你想要锁定更改标签。如果我点击按钮,我无法更改标签,但我再次点击,该功能已解锁,对吧?
  • 是的,我想这样做。

标签: android android-fragments pagerslidingtabstrip


【解决方案1】:

您可以制作一个自定义 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).

【讨论】:

  • 您查看过我指定的链接的 ViewPager 吗?你是在告诉我要完全替换它吗?
  • ViewPager 来自 android support v4 库,是的,我检查并看到它已在您的代码中使用。所以基本上我是说,将这个类添加到您的代码中,并将 ViewPager 替换为使用它的 CustomViewPager。实际上,您需要替换它的参考文献并不多
  • 我如何在 MainActivity 中调用它,因为当前正在使用 FragmentManager
  • 您永远不会在您提供的代码中使用 FragmentManager 调用它,而是以这种方式调用适配器。至于自定义 ViewPager,您只需像这样使用它CustomViewPager pager = (CustomViewPager) findViewById(R.id.pager);
  • 它给出了一个错误:android.support.v4.view.ViewPager cannot be cast to mvk.com.slidingtabs.CustomViewPager。我做错了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多