Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 呼叫按钮';s onClick(…)回调,与MotionEvent目标无关_Android_Ontouchlistener - Fatal编程技术网

Android 呼叫按钮';s onClick(…)回调,与MotionEvent目标无关

Android 呼叫按钮';s onClick(…)回调,与MotionEvent目标无关,android,ontouchlistener,Android,Ontouchlistener,我正在努力实现以下功能: “我的视图”组中有N个按钮 ------------ | button 1 | ------------ | button 2 | ------------ | ... | ------------ | button N | ------------ 用户按下按钮1(MotionEvent.ACTION\u DOWN),然后将手指移动到按钮N(MotionEvent.ACTION\u MOVE),然后松开手指(MotionEvent.ACTION\u UP)

我正在努力实现以下功能:

“我的视图”组中有N个按钮

------------
| button 1 |
------------
| button 2 |
------------
|   ...    |
------------
| button N |
------------
用户按下
按钮1
MotionEvent.ACTION\u DOWN
),然后将手指移动到
按钮N
MotionEvent.ACTION\u MOVE
),然后松开手指(
MotionEvent.ACTION\u UP

  • 我想突出显示用户移动手指的任何按钮 (悬停时高亮显示)
  • 我希望当用户在按钮N上松开手指时调用
    onClick(…)
    回调
    按钮N
  • 我试图将
    onTouchListener
    设置到每个按钮,似乎被触摸的按钮首先接收到所有3个提到的动作(
    MotionEvent.ACTION\u DOWN
    MotionEvent.ACTION\u MOVE
    MotionEvent.ACTION\u UP

    我还考虑通过重写按钮父视图组的方法来实现该功能。这可能是可能的,但是似乎没有一种方法可以从传递给
    onInterceptTouchEvent(MotionEvent)
    方法的
    MotionEvent
    检测子视图


    您对所述功能的实现有何提示?

    我想要实现的实际上是一种使用标准小部件(例如按钮)的“饼状菜单”或“放射状菜单”。我无法使用标准小部件实现它,所以我自己实现了这个行为。如果有人需要类似的功能,这里有一个启示:。链接中的代码来自谷歌的摄像头应用程序,因为它使用“径向菜单”来控制摄像头设置