2

我有一个可以正常工作的自定义视图,我正在尝试将手势融入其中。我看到的最常见的技术是添加 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);

但是永远不会调用回调。

有人可以指出我的错误,建议一种更好的方法来让我获得手势回调和/或建议诊断方法吗?

4

1 回答 1

3

问候,我在努力寻找解决同一问题的方法时遇到了您的问题:我有一个自定义视图,一个仪表,我无法使用手势进行操作(直到我找到您的问题)。

我能够解决这个问题,因此这个回应。

我发现我的视图正在返回单击事件,但对于 ACTION_DOWN,动作始终为 0... 而在我的其他布局中,手势正在工作,我会为任何单个手势获得各种动作。

我继续并采取了linearlayout失败的方法,并将其包含在gestureOverlayView使用您上面的代码中。不同之处在于我将整个线性布局放置在gestureoverlay. 您上面的示例将其显示gestureoverlay为一个独立的实体,其中没有任何内容,这可能是您的问题的原因。

要使用它,我只需将我的手势侦听器注册到覆盖视图,如下所示:

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

对于快速响应,我深表歉意,但我希望至少我可以对您的问题有所了解,或者帮助其他在使用手势时遇到此怪癖的人。

BH

于 2010-06-20T20:31:33.327 回答