今天我们来优雅的实现不能滑动的ViewPager,不直接在ViewPager中写死,我们自己调用方法 控制ViewPager的拦截事件和滑动
先看看怎么用:
viewPager = (MyViewPager) findViewById(R.id.activity_main_viewpager);
viewPager.setTouchIntercept(false);
viewPager.setCanScroll(false);
看看如何实现?
要改变系统控件的原生的样子,就必须自定义了
public class MyViewPager extends ViewPager { private boolean willIntercept = true; public MyViewPager(Context context) { super(context); } public MyViewPager(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onInterceptTouchEvent(MotionEvent arg0) { if (willIntercept) { return super.onInterceptTouchEvent(arg0); } else { return false; } } public void setTouchIntercept(boolean value) { willIntercept = value; } private boolean isCanScroll = true; public boolean isCanScroll() { return isCanScroll; } public void setCanScroll(boolean isCanScroll) { this.isCanScroll = isCanScroll; } @Override public boolean onTouchEvent(MotionEvent arg0) { // return super.onTouchEvent(arg0); return isCanScroll ? false : true; }}
本文介绍了一种自定义ViewPager的方法,通过控制拦截事件和滑动行为,实现了优雅地禁用ViewPager滑动的功能。该方法提供了setTouchIntercept和setCanScroll两个方法,允许开发者灵活控制ViewPager是否响应触摸事件。
8149

被折叠的 条评论
为什么被折叠?



