Android 11.0 实现点击鼠标右键,显示菜单栏

packages/apps/Launcher3/src/com/android/launcher3/touch/WorkspaceTouchListener.java

【思路】
(1)获取鼠标右键的事件:ev.getButtonState() == MotionEvent.BUTTON_SECONDARY
(2)显示菜单栏:OptionsPopupView.showDefaultOptions(mLauncher, mTouchDownPoint.x, mTouchDownPoint.y);
这里传入的x,y是为了实现菜单栏可以随着我们鼠标右键的位置来显示。

    @Override
    public boolean onTouch(View view, MotionEvent ev) {
    
    
        mGestureDetector.onTouchEvent(ev);
        ....
            if (handleLongPress) {
    
    
                mLongPressState = STATE_REQUESTED;
                mTouchDownPoint.set(ev.getX(), ev.getY());
                // wangrui When the right mouse button is clicked, the menu items are displayed
+                if (ev.getButtonState() == MotionEvent.BUTTON_SECONDARY) OptionsPopupView.showDefaultOptions(mLauncher, mTouchDownPoint.x, mTouchDownPoint.y);
            }
            ...

        return result;
    }

猜你喜欢

转载自blog.csdn.net/qq_27494201/article/details/125196832