我正在开发一个 Android 应用程序,它有一个带有标签布局的页面,包括 2 个选项卡、一个列表页面和一个 map (都是 fragment )。列表元素是保存图像的 viewpager,但是当用户到达 viewpager 中的最后一个图像时,tablayout 获得下一个滑动事件并切换到 map 。如果用户尝试从屏幕的最右侧开始滑动图像,也会发生这种情况。
我想完全切换选项卡之间的滑动功能,但没有找到这样做的方法。
这是我设置标签的方式:
ViewPager fragmentPager = (ViewPager) findViewById(R.id.viewpager);
fragmentPager.setAdapter(new MyPagerAdapter);//extends FragmentPagerAdapter
TabLayout tabLayout = (TabLayout) findViewById(R.id.tablayout);
tabLayout.setupWithViewPager(fragmentPager);
最佳答案
您可以使用自定义 View 寻呼机执行此操作。
创建一个名为 Custom_viewpager 的类并在您的 XML 中扩展它。
public class Custom_viewpager extends ViewPager {
private boolean enabled;
public Custom_viewpager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return enabled ? super.onTouchEvent(event) : false;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return enabled ? super.onInterceptTouchEvent(event) : false;
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
}
public boolean isPagingEnabled() {
return enabled;
}
当你想禁用滑动时,只需添加这两行。
viewPager.setPagingEnabled(false);
viewPager.beginFakeDrag();
如果有帮助,请告诉我。 :)
关于android - 在 android tablayout 中禁用选项卡之间的滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34530482/