viewpage里面放了一个imageview,MotionEvent.ACTION_MOVE里面设置imageview随着手指滑动,onTouchEvent是返回了true。纵向滑动没有问题,横向滑动会出现滑动一点点距离就划不动了,viewpage开始滑动。这是什么情况的。viewpage是横向的。
PHP中文网2017-04-17 17:49:46
ViewPager.onInterceptTouchEvent()
는 일반적으로 수평 슬라이딩을 차단하기 때문에 사진에 MotionEvent.ACTION_MOVE
액션이 적용되지 않습니다.
해결 방법은 대략 다음과 같습니다.ViewPager.onInterceptTouchEvent()
의 MotionEvent.ACTION_MOVE
아래에 수평 미끄러짐을 방지하는 코드가 있습니다
이 코드를 실행할 수 있는 한 ViewPager는 이 수평 슬라이딩을 가로채지 않습니다. 핵심 방법은 canScroll()
소스코드는 다음과 같습니다
으아아아대략 내부의 하위 컨트롤이 수평으로 슬라이드할 수 있는지 판단하는 것입니다
내부의 마지막 컨트롤이 ImageView
이므로 v가 <🎜일 때 마지막 키는 ViewCompat.canScrollHorizontally(v, -dx);
입니다. >, ImageView
true
로 돌아가기
메서드입니다. 여기 코드는 매우 간단하므로 여기에 게시하지 않겠습니다. 이 메서드는 ImageView.canScrollHorizontally()
을 직접 상속하고 View.canScrollHorizontally()
을 반환합니다. 그래서 저는 2가지 해결책을 생각합니다 false
ImageView
을 다시 작성하여 ImageView.canScrollHorizontally()
true
권장 방법 1