android - 鼠标在两个view上移动,如何让它们都处理 `ACTION_MOVE`事件

标签 android mouseevent

我有两个view,大的在下面,小的在上面。如下图所示:

enter image description here

现在我在 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 the ACTION_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/

相关文章:

python - 如何使用 Controller 的输入正确运行模拟鼠标的宏?

c++ - 如何在 Microsoft visual C++ ( MFC ) 中处理特定控件的鼠标悬停事件?

java - JTable 内的 MouseMotionListener

android - 如何查找 RecyclerView 是否正在向上或向下滚动

android - 如何在 Android 6 上打开 pdf 文件

android - 如何在改造中处理动态 JSON?

java - 将用Java编写的.jar导入Android,noClassDefFoundError

javascript - 如何在 jquery 或 javascript 中创建拖放事件?

android - OnScreen 键盘在 Activity 启动时自动打开

c++ - C++ Win32 中的哪个控件等于 C# WPF 中的 "Run"控件?