3

我有两个视图,较大的在底部,较小的在顶部。如下图所示:

在此处输入图像描述

现在我在 view1(view2 之外)上按下鼠标,然后移动到 view2。我发现即使在移动过程中鼠标在 view2 内,view2 也不会得到ACTION_MOVE事件。只有 view1 可以得到它。

我想要的是:

当鼠标在 view1 内部和 view2 外部时,让 view1 处理ACTION_MOVE事件。如果鼠标移到 view2 中,则让 view2 处理该ACTION_MOVE事件。

怎么做?

PS:安卓版本是2.x

4

1 回答 1

1

这是不可能的,但你可以做一些其他的事情:

获取鼠标和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;
    }
});
于 2012-11-23T13:41:16.380 回答