android - 如何以编程方式将 Android 手势 View 添加到自定义 View ?

标签 android gestures

我有一个工作正常的自定义 View ,我正在尝试将手势放入其中。我看到的最常见的技术是添加 XML,例如(来自 Android 文档:

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

我的 View 位于相对 View 内,当我尝试引用此 GetureOverlayView 时,出现异常。

我还尝试在现有的自定义 View 类中进行连接,如下所示:

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

但是回调永远不会被调用。

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

最佳答案

您好, 当我努力寻找同一问题的解决方案时,我遇到了你的问题:我有一个自定义 View ,一个仪表,我无法使用手势来处理它(直到我找到你的问题)。

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

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

我继续采用失败的线性布局,并使用上面的代码将其封装在gestureOverlayView中。一个区别是我将整个线性布局放置在手势覆盖中。上面的示例显示 gestureoverlay 作为一个独立的实体,其中没有任何内容,这可能是导致您的问题的原因。

要使用它,我只需在覆盖 View 上注册我的手势监听器,如下所示:

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

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

BH

关于android - 如何以编程方式将 Android 手势 View 添加到自定义 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2915325/

相关文章:

ios - 检测 _which_ 手指触摸 iOS 设备上的屏幕

ios - 滑动和平移手势重叠

c# - 单击更改 ViewCell 元素

android - 将 Facebook ProfilePictureView 转换为位图以在 ImageView 中使用

java - Android:Searchview 即使单击具有不同 id 的其他菜单项也会打开

iphone - UIPageViewController 和 UIScrollView

ios - 如何在 View 动画时识别点击手势

android - 添加到手机主屏幕

android - 从 Android 中的挂起函数并行调用 Kotlin 协程

ios - 检测 iOS8 可达性手势