使 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).
我最近使用 SlidingTabLayout
制作了一个带有两个选项卡的应用程序。我提到了这个 link
但是我不得不稍微修改一下。我必须添加一个 锁定选项卡滑动的按钮 。并在再次点击时解锁。所以我就是无法让标签不滑动。
我查看了这个问题
任何帮助都会非常有用。谢谢。
您可以制作一个自定义的 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).