我有一个 ViewGroup 类型的父(容器)视图,在运行时我添加了未知数量的子视图。
在运行时,我想检测哪个子视图接收到触摸事件以及哪个子视图接收到触摸事件(如果我按下子视图并移动到我离开手指的另一个视图)。
在下面的代码中,当我按下子视图并移动(不松开手指)到另一个子视图并离开手指时,我得到的视图与我按下的视图相同(我无法检测到第二个子视图)。
childView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event)
{
// TODO Auto-generated method stub
if (event.getAction() == MotionEvent.ACTION_DOWN)
{
Toast.makeText(getBaseContext(), v.toString(), Toast.LENGTH_SHORT).show();
}
else if (event.getAction() == MotionEvent.ACTION_UP)
{
Toast.makeText(getBaseContext(), v.toString(), Toast.LENGTH_SHORT).show();
}
else if (event.getAction() == MotionEvent.ACTION_MOVE)
{
}
return false;
}
});
附加信息:
我在 Android 4.1.2(API 16 及更高版本)上使用我的代码。
我也在听 Click 事件。