如何在Chromebook上的Android应用的WebView中显示右键上下文菜单?

问题描述 投票:1回答:1

我正在开发一个Android应用程序,它有一个 WebView 其中显示各种内容。当我用手指长按某个文本时(触摸时间较长),会弹出一个标准的(横向)Android上下文菜单。然而,当我用鼠标或触摸板右键点击同一文本时,会弹出标准的(横向)Android上下文菜单。WebView 不显示上下文菜单--而且不管是否选择了某些文本。

我试着看了很多解决方案,甚至连回调带来的回调都没有。setOnContextClickListener (如图 此处)在右键单击时没有被调用(然而通用的运动事件回调被调用),所以在WebViews中似乎根本不支持它。

最后,似乎我必须创建自己的上下文菜单。我只是想知道是否没有任何标准的,只需要以某种方式启用。

我希望有一个类似于 EditText 右键单击上下文菜单是垂直的,但我一直不能在右键单击时显示这两个菜单中的任何一个。水平和垂直的菜单都可以显示 此处.

我在惠普Chromebook x360 11 G1 EE上测试,如果这有区别的话。

android android-webview chromebook
1个回答
1
投票

你可以 overrideonTouchEvent(MotionEvent event)WebView 并检测 event.getButtonState() 以查看哪个按钮被点击。

    switch (event.getButtonState()) {
        case MotionEvent.BUTTON_PRIMARY:
            onMouseClickListener.onLeftClick();
            break;

        case MotionEvent.BUTTON_SECONDARY:
            onMouseClickListener.onRightClick();
            break;
    }

请注意 onMouseClickListener 是该事件的自定义监听器。

© www.soinside.com 2019 - 2024. All rights reserved.