我有两个视图,大的在底部,小的在顶部。在以下图片上显示:
现在我在View1(Outside View2)上按鼠标,然后移动到View2。我发现即使在移动过程中鼠标在view2中,view2也不会得到ACTION_MOVE事件。只有view1才能得到它。
我想要什么:
当鼠标位于View1内部和View2外部时,让View1处理ACTION_MOVE事件。如果鼠标移到view2中,则让view2处理ACTION_MOVE事件。
怎么做?
PS:Android版本是2.x

最佳答案

这是不可能的,但是你可以做一些其他的事情:
获取mouse和view2的坐标,如果mouse在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/

10-10 02:58