我有两个view,大的在下面,小的在上面。如下图所示:
现在我在 view1(view2 之外)上按下鼠标,然后移动到 view2。我发现即使鼠标在移动过程中在 view2 内部,view2 也不会获得 ACTION_MOVE
事件。只有 view1 可以获取。
我想要的:
When the mouse is inside view1 and outside view2, let view1 handle the
ACTION_MOVE
event. If the mouse move into view2, then let view2 handle theACTION_MOVE
event.
怎么做?
PS: 安卓版本是2.x
最佳答案
这是不可能的,但你可以做一些其他的事情:
获取鼠标和view2的坐标,如果鼠标在view2的范围内,试试你想要的。或者如果你想,你可以直接调用view2.onTouch
方法,为V2创建一个touchlistener类,例如 V2TouchListener
然后:
View v2 = ... ;
final V2TouchListener v2t = new V2TouchListener();
v2.setOnTouchListener(v2t);
v1.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
// do something
break;
case MotionEvent.ACTION_MOVE:
// do something
//if mouse is in bounds of view2 do this:
//for example view is between x= 20 and x = 50
if((event.getX() < 50) &&(event.getX() > 20) )
v2t.onTouch(v2, event);
break;
}
return false;
}
});
关于android - 鼠标在两个view上移动,如何让它们都处理 `ACTION_MOVE`事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13530104/