我正在开发一个Android应用程序,它有一个 WebView
其中显示各种内容。当我用手指长按某个文本时(触摸时间较长),会弹出一个标准的(横向)Android上下文菜单。然而,当我用鼠标或触摸板右键点击同一文本时,会弹出标准的(横向)Android上下文菜单。WebView
不显示上下文菜单--而且不管是否选择了某些文本。
我试着看了很多解决方案,甚至连回调带来的回调都没有。setOnContextClickListener
(如图 此处)在右键单击时没有被调用(然而通用的运动事件回调被调用),所以在WebViews中似乎根本不支持它。
最后,似乎我必须创建自己的上下文菜单。我只是想知道是否没有任何标准的,只需要以某种方式启用。
我希望有一个类似于 EditText
右键单击上下文菜单是垂直的,但我一直不能在右键单击时显示这两个菜单中的任何一个。水平和垂直的菜单都可以显示 此处.
我在惠普Chromebook x360 11 G1 EE上测试,如果这有区别的话。
你可以 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
是该事件的自定义监听器。