如何在Android

时间:2017-03-30 06:39:58

标签: android button ontouchlistener


我正在开发一个Android应用程序,它有多个重叠按钮,我想对每个按钮的触摸事件执行一些操作(我通过java代码而不是XML添加这些按钮)。
Overlapping buttons

@Override
public boolean onTouchListener(View v, MotionEvent event)
{
    if(MotionEvent.ACTION_MOVE){
       //action to perform
    }
    return true;
}


我想要做的是,当我触摸按钮1并分别向按钮2和按钮3移动而不离开屏幕时,当我的手指超过按钮2然后按钮2触摸动作应该执行并且代码应该停止执行按钮1动作。

目前正在发生的事情是,当我触摸按钮1并且通过按钮2时,静止代码正在执行按钮1动作,并且一旦我离开屏幕并且触摸按钮2或按钮3与它们相关联的动作开始执行。 我想执行与按钮相关的操作,因为我触摸任何按钮并移动任何其他按钮,因此代码应该识别按钮,我只是触摸并执行与该按钮相关的操作。

如果有任何混淆,请回复......

1 个答案:

答案 0 :(得分:0)

您必须从父ViewGroup收听并拦截您感兴趣的触摸事件。有关详细信息,请参阅here

来自ViewGroup#onInterceptTouchEvent(MotionEvent ev)的文档:

  

实施此方法以拦截所有触摸屏动作事件。这允许您在将事件发送给您的孩子时观察事件,并在任何时候获得当前手势的所有权。