2012-07-21 2 views

답변

3

이것은 매우 까다로운 부분입니다. Activity의 오버라이드 된 메소드는 다음과 같습니다. public boolean onTouchEvent(MotionEvent event)

이것은 전체 화면에서 모든 터치 이벤트를 해석하는 일반적인 방법입니다. 그리고 당신은 말할 수 있습니다, "좋아, 나는 이것을 구현할 수 있고 나는 가기 좋다.". 여기 안드로이드가 어떻게 작동하는지에 대한 어려운 부분이 있습니다.

모두 알고 있듯이 View에는 고유 한 구현을 추가하기 위해 구현할 수있는 onTouchEvent() 메서드가 있습니다. 그럼 어떤 방법으로들을 것인가? ScrollView 또는 Activity? 이러한 터치 이벤트는 "내부"요소에서 "외부"요소로 이동하는 것으로 보입니다. 나는 부모 - 자식 관계를 의미한다.

또 다른 중요한 점은 onTouchEvent 메서드가 부울을 반환한다는 것입니다. 이 불리언 매개 변수는 터치 이벤트를 한 레벨 위로 올리거나 현재 View으로 처리할지 여부를 결정합니다. 즉, onTouchEvent() 및 CustomViewB 자체 터치 이벤트를 구현하는 CustomViewA이 있고 A가 B에서 자식 인 경우 touch 이벤트는 A를 먼저 통과하고 처리되지 않으면 B로 이동합니다.

기본적으로 그렇습니다. 그것은 당신이하고 싶은 터치 이벤트에 달려 있습니다.

터치 이벤트가 가로 일 때 ScrollViewtrue을 반환합니다. 액티비티의 터치 이벤트는 ScrollView 터치 이벤트가 단독으로 처리되지 않은 경우에만 처리됩니다. 그렇지 않으면 스크롤 뷰의 on touch 이벤트를 오버라이드하고 구현해야하며 경우에 따라서는 전체 레이아웃에서 구현되도록 false를 반환해야합니다. 마지막 부분에 행운을 빈다. 나는 플링 효과를 구현하기 시작했지만 몇 가지 어려움이 생겨서 스크롤보기가있는 2 손가락 이동을 구현했으며 매력처럼 작동합니다.

이것은 대략 1 주일 간의 연구 및 실험이며, 이것이 내가 생각해 낸 개요입니다. 다른 것을 찾으면 알려주세요. 희망이 도움이되었습니다.

관련 문제