2010-05-26 5 views
1

잘 작동하는 사용자 지정보기가 있고 제스처를 얻으려고합니다. 내가 볼 수있는 가장 일반적인 방법은 안드로이드 문서에서 (이와 같은, XML을 추가하는 것입니다프로그래밍 방식으로 Android 제스처보기를 사용자 정의보기에 추가하려면 어떻게해야합니까?

<android.gesture.GestureOverlayView 
    android:id="@+id/myGestures" 
    android:layout_width="fill_parent" 
    android:layout_height="0dip" 
    android:layout_weight="1.0" 
    /> 

내보기는 RelativeView 내에서 내가이 GetureOverlayView를 참조 할 때, 나는 예외가

. . 나는 또한이 같은 기존 사용자 정의 뷰 클래스 내에서 연결을 시도했습니다

mGestures = new GestureOverlayView(context, attrs); 
mGestures.addOnGesturePerformedListener(this); 

하지만 콜백이 호출되지 않습니다

누군가가 지적 할 수 있습니까 오류, 제스처 콜백을 얻거나 진단 접근법을 제안 할 수있는 더 나은 방법을 제안합니까?

+0

예외 스택 추적을 게시 할 수 있습니까? 'adb ​​logcat' 명령을 사용하여 얻을 수 있습니다. 또한 프로그램 적으로 뷰를 생성 할 때 너비와 높이를 할당해야합니다 ('LayoutParams' 참고). –

답변

2

인사말, 같은 문제에 대한 해결책을 찾는데 어려움을 겪으면서 나는 당신의 질문을 보았습니다. 사용자 정의보기, 계기가있어서 제스처를 작업 할 수 없었습니다 (귀하의 질문을 찾을 때까지) .

나는이 문제를 해결할 수있었습니다.

내보기가 클릭 이벤트를 반환하지만 액션이 항상 ACTION_DOWN 인 것으로 나타났습니다 ... 제스처가 작동하는 다른 레이아웃에서 모든 단일 제스처에 대해 다양한 조치를 취할 것입니다.

내가 앞서 가서 실패한 linearlayout을 가져 와서 위에 나온 코드를 사용하여 gestureOverlayView 안에 넣었습니다. 한 가지 차이점은 내 전체 선형 배치를 gestureoverlay 내에 배치했다는 것입니다. 위의 예에서는 gestureoverlay이 별다른 영향을 미치지 않는 독립 실행 형 엔터티로 표시되어 문제의 원인 일 가능성이 큽니다. 빠른 응답

((GestureOverlayView) findViewById(R.id.myGestures)).setOnTouchListener(gestureListener); 

내 사과,하지만 난 문제에 도움이 되거 수 적어도 희망, 또는 :

를 사용하려면, 다음과 같이 저는 단순히 수 있도록 OverlayView에 내 제스처 리스너를 등록 몸짓으로 일할 때이 특질을 치는 다른 사람을 도우십시오.

BH

관련 문제