我有一个工作正常的自定义 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/