此问题可能是由于在 Android 12 中引入的新的系统 UI 风格所导致。解决该问题的方法是使用 Android 12 新增的 CustomSelectionActionModeCallback
接口,并在其回调方法中添加自定义菜单项。
以下是示例代码:
webView.setCustomSelectionActionModeCallback(new CustomSelectionActionModeCallback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
// Inflate the menu resource
mode.getMenuInflater().inflate(R.menu.custom_webview_menu, menu);
// Remove the default actions
menu.removeItem(android.R.id.selectAll);
menu.removeItem(android.R.id.cut);
menu.removeItem(android.R.id.copy);
// Return true to show the menu
return true;
}
});
在上面的示例中,我们使用 setCustomSelectionActionModeCallback
方法设置了自定义的 CustomSelectionActionModeCallback
,并在该回调方法的 onCreateActionMode
方法中调用 getMenuInflater().inflate
方法来从菜单资源中填充自定义菜单项。同时,我们移除了默认的选择、剪切和复制操作,以避免与自定义菜单项重叠。最后,我们返回 true
来显示菜单。
通过以上的方法,我们可以在 Android 12 的 WebView 中显示自定义菜单项。