ViewPager.onInterceptTouchEvent()는 일반적으로 수평 슬라이딩을 차단하기 때문에 사진에 MotionEvent.ACTION_MOVE 액션이 적용되지 않습니다.
해결 방법은 대략 다음과 같습니다. ViewPager.onInterceptTouchEvent()의 MotionEvent.ACTION_MOVE 아래에 수평 미끄러짐을 방지하는 코드가 있습니다
으아아아
이 코드를 실행할 수 있는 한 ViewPager는 이 수평 슬라이딩을 가로채지 않습니다. 핵심 방법은 canScroll()
이어야 합니다.
소스코드는 다음과 같습니다
으아아아
대략 내부의 하위 컨트롤이 수평으로 슬라이드할 수 있는지 판단하는 것입니다 내부의 마지막 컨트롤이 ImageView이므로 v가 ViewCompat.canScrollHorizontally(v, -dx);입니다. >, ImageViewtrue로 돌아가기
상위 버전을 사용하는 경우 실제 구현은
메서드입니다. 여기 코드는 매우 간단하므로 여기에 게시하지 않겠습니다. 이 메서드는 ImageView.canScrollHorizontally()을 직접 상속하고 View.canScrollHorizontally()을 반환합니다. 그래서 저는 2가지 해결책을 생각합니다 false
ImageView
의 상위 컨트롤로 슬라이딩 컨트롤을 사용합니다.
을 다시 작성하여 ImageView.canScrollHorizontally()true권장 방법 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
의 상위 컨트롤로 슬라이딩 컨트롤을 사용합니다.ImageView
을 다시 작성하여
을 반환하도록 합니다.ImageView.canScrollHorizontally()
true
권장 방법 1