찾다

 >  Q&A  >  본문

android - MotionEvent.ACTION_MOVE 在onTouchEvent返回false情况下事件仍然上传

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

PHP中文网PHP中文网2773일 전717

모든 응답(1)나는 대답할 것이다

  • PHP中文网

    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

    1. ImageView

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

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

    회신하다
    0
  • 취소회신하다