public class MyScrollView extends ScrollView { private boolean mCanScroll = true; private float mDownY; public MyScrollView(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: mDownY = ev.getY(); break; case MotionEvent.ACTION_MOVE: int scrollY = getScrollY();//滑到顶部或底部if ((scrollY == 0 && mDownY <= ev.getY()) || (getChildAt(0).getMeasuredHeight() == (scrollY + getHeight()) && mDownY >= ev.getY())) { mCanScroll = false; }break; case MotionEvent.ACTION_UP: mCanScroll = true; break; case MotionEvent.ACTION_CANCEL: mCanScroll = true; break; } if (mCanScroll) { //通知ViewPager不要干扰自身的操作 getParent().requestDisallowInterceptTouchEvent(true); return super.onTouchEvent(ev); } else { getParent().requestDisallowInterceptTouchEvent(false); return false; } }}
VerticalViewPager中嵌套ScrollView,导致ViewPager滑动失效问题解决
最新推荐文章于 2016-11-21 21:31:55 发布
本文介绍了一种解决方法,通过自定义MyScrollView,在onTouchEvent中判断滑动方向,避免ViewPager与ScrollView的滑动冲突,确保两者正常交互。
低功耗蓝牙项目,需要一块懂省电的板
思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发
低功耗蓝牙项目,需要一块懂省电的板
思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

4万+

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



