android webview:防止文本选择actionMode actionBar
Posted
技术标签:
【中文标题】android webview:防止文本选择actionMode actionBar【英文标题】:android webview: prevent text selection actionMode actionBar 【发布时间】:2016-07-05 10:11:39 【问题描述】:我想在 webView 中保留文本选择,同时防止显示 actionMode 的任何上下文菜单。既不是新的浮动栏也不是旧的 actionBar,只有选择句柄,当然还有选择行为。
在 startActionMode 中挂钩到 actionModeCallback 允许我在回调 onCreateActionMode 中清除菜单中的所有项目。
这在 android 6 上运行良好,因为根本不会显示一个空的浮动菜单,并且会保留 actionMode 文本选择行为。
不幸的是,在 android
有没有一种干净的方法来获得这个?我正在使用 ReactNative 应用程序,但使用的是自定义扩展 webview,并且我还可以访问 mainActivity 代码。
【问题讨论】:
【参考方案1】:确实非常简单:在 startActionMode 中返回一个新的空 ActionMode 而不是返回 null,null 被解释为取消操作模式以及需要它的内容。
您需要覆盖 startActionMode 的新旧 api 23 签名:
@Override
public ActionMode startActionMode(ActionMode.Callback callback, int type)
return this.dummyActionMode();
@Override
public ActionMode startActionMode(ActionMode.Callback callback)
return this.dummyActionMode();
public ActionMode dummyActionMode()
return new ActionMode()
@Override public void setTitle(CharSequence title)
@Override public void setTitle(int resId)
@Override public void setSubtitle(CharSequence subtitle)
@Override public void setSubtitle(int resId)
@Override public void setCustomView(View view)
@Override public void invalidate()
@Override public void finish()
@Override public Menu getMenu() return null;
@Override public CharSequence getTitle() return null;
@Override public CharSequence getSubtitle() return null;
@Override public View getCustomView() return null;
@Override public MenuInflater getMenuInflater() return null;
;
如果你喜欢 java,你可能想更改 dummyActionMode 函数的公共签名和缩进,我不喜欢。
【讨论】:
以上是关于android webview:防止文本选择actionMode actionBar的主要内容,如果未能解决你的问题,请参考以下文章