android - MotionEvent.ACTION_MOVE 在onTouchEvent返回false情况下事件仍然上传
PHP中文网
PHP中文网 2017-04-17 17:47:46
0
1
716

viewpage里面放了一个imageview,MotionEvent.ACTION_MOVE里面设置imageview随着手指滑动,onTouchEvent是返回了true。纵向滑动没有问题,横向滑动会出现滑动一点点距离就划不动了,viewpage开始滑动。这是什么情况的。viewpage是横向的。

PHP中文网
PHP中文网

认证0级讲师

모든 응답(1)
洪涛

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

  1. ImageView

    의 상위 컨트롤로 슬라이딩 컨트롤을 사용합니다.
  2. 을 다시 작성하여 ImageView.canScrollHorizontally()true권장 방법 1

    을 반환하도록 합니다.
위 분석은 코드 검증을 위해 작성된 것이 아니므로 오류가 있을 수 있으니 정정 부탁드립니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿