我正在开发一个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与它们相关联的动作开始执行。
我想执行与按钮相关的操作,因为我触摸任何按钮并移动任何其他按钮,因此代码应该识别按钮,我只是触摸并执行与该按钮相关的操作。
如果有任何混淆,请回复......
答案 0 :(得分:0)
您必须从父ViewGroup
收听并拦截您感兴趣的触摸事件。有关详细信息,请参阅here。
来自ViewGroup#onInterceptTouchEvent(MotionEvent ev)的文档:
实施此方法以拦截所有触摸屏动作事件。这允许您在将事件发送给您的孩子时观察事件,并在任何时候获得当前手势的所有权。