我正在开发一个具有WebView
并显示各种内容的Android应用。当我用手指长按(触摸较长时间)一些文本时,会弹出一个标准(水平)Android上下文菜单。但是,当我用鼠标或触摸板在同一WebView
中单击鼠标右键时,不会显示上下文菜单-而且是否选择了某些文本也没关系。
我已经尝试了许多解决方案,甚至在右键单击时都不会调用setOnContextClickListener
中的回调(如图here所示)(但是,通用运动事件回调被称为),因此WebViews似乎完全不支持它。
最后,似乎必须创建自己的上下文菜单。我只是想知道是否没有任何一种标准可以通过某种方式启用。
我想要的是类似于EditText
的右键单击上下文菜单,它是垂直的,但是右键单击时我无法显示两者之一。水平菜单和垂直菜单都显示在here中。
如果有帮助,我正在HP Chromebook x360 11 G1 EE上进行测试。
答案 0 :(得分:1)
您可以override
中的onTouchEvent(MotionEvent event)
WebView
并检测event.getButtonState()
来查看单击了哪个按钮。
switch (event.getButtonState()) {
case MotionEvent.BUTTON_PRIMARY:
onMouseClickListener.onLeftClick();
break;
case MotionEvent.BUTTON_SECONDARY:
onMouseClickListener.onRightClick();
break;
}
请注意,onMouseClickListener
是此事件的自定义侦听器。