2011-05-13 121 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