2011-05-13 92 views
1

我想弄清楚如何添加一個OnGestureListener或其他方式來檢測整個屏幕上的觸摸拖動到一個按鈕,或一些其他的小部件,可以添加到視圖。我一直在試圖弄清楚如何做到這一點,我不能。我已經看到併成功地完成了一項活動。任何人都可以爲我解釋這一點,因爲我似乎比我想象的要麻煩得多。謝謝。將OnGestureListener添加到按鈕?

回答

1

我假設你已經通過了http://developer.android.com/resources/articles/gestures.html。訣竅是您可以將GestureOverlayView作爲另一個View之上的透明圖層。然後,您可以解析檢測爲屬於底層View的任何手勢。

在文章中,他們表現出你這樣的佈局:

<android.gesture.GestureOverlayView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gestures" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 

    android:gestureStrokeType="multiple" 
    android:eventsInterceptionEnabled="true" 
    android:orientation="vertical"> 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 

</android.gesture.GestureOverlayView> 

檢測到的任何手勢然後可以解釋爲ListView的到來。在你的情況下,用你的Button替換ListView,你應該全部設置好。

+0

這類作品,但它造成了問題,因爲它會自動消耗觸摸事件,無論我是否希望它。我需要一種方法,如果它不是一個拖動操作,它會將事件傳遞到我的手勢視圖之外。 – spierce7 2011-05-13 08:41:48

+0

這應該做一個體面的工作,只要你正確地指定'orientation'和'gestureStrokeType'屬性(如上所示)。它必須攔截觸摸事件來檢測手勢,但如果它不被接受爲手勢,它應該通過它。你有沒有包含這些屬性? – Femi 2011-05-13 13:43:05