在发布这个问题之前,我已经搜索了很多,但在这个问题上找不到任何明确的答案.
我必须覆盖android webview的默认文本选择并显示我的自定义文本选择对话框选项.我试过这个示例代码项目.
此示例项目适用于以下设备和模拟器:
不适用于以下设备:
在Android操作系统版本4.1和4.1+而不是显示我的自定义文本选择选项对话框,它显示Android系统的文本选择的默认操作栏.
我对此进行了大量搜索,很多人建议使用onLongClick()方法接口
我已经在这个论坛上问了一个问题请看这个链接,这个问题的答案我能够克隆onLongClick()事件,但我无法停止默认文本选择操作栏.
对于这种情况,我几乎没有问题.
1.为什么onLongClick()方法停止在android os 4.1+上运行的设备上工作?
2.如果长按webview中的文本,如何停止默认文本选择操作栏?
这是我的自定义webview类.
package com.epubreader.ebook;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Context;
import android.graphics.Rect;
import android.graphics.Region;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import …Run Code Online (Sandbox Code Playgroud) 我使用webview在Android Honeycomb(3.x)中显示内容.我创建了用于剪切,复制和粘贴的自定义操作菜单.如何使用我自定义的操作菜单在Webview中复制所选文本.
我正在创建一个像这样的"浮动"WebView:
public class MyService extends Service {
public static WindowManager windowManager;
public static LinearLayout mainView;
public WebView webView;
@Override
public void onCreate() {
super.onCreate();
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
// main view
mainView = (LinearLayout) inflater.inflate(R.layout.popup, null);
WindowManager.LayoutParams mainViewParams = new WindowManager.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
windowManager.addView(mainView, mainViewParams);
// main view - web views
webView = (WebView) mainView.findViewById(R.id.webView1);
webView.setWebViewClient(new WebViewClient());
}
}
Run Code Online (Sandbox Code Playgroud)
主视图是包含WebView的LinearLayout.创建服务时会显示主视图,并且不会附加到任何活动.由于WindowManager.LayoutParams.TYPE_PHONE旗帜,视图可以漂浮在其他活动之上.
问题是,我无法选择WebView中显示的任何文本.如果我按住某个单词,则选择显示然后会很快消失.用于复制文本等的操作栏不会显示,也不会显示Marshmallow中的上下文菜单.
这是否发生是因为我的观点没有附加到活动?我曾经使用活动和文本选择来实现我的浮动视图工作正常,但我最近改为这种"无活动"方法,因为当我显示/隐藏时我不想处理所有不必要的活动生命周期管理视图.
如何获取文本选择(在我的WebView中)?
编辑:此问题不是WebView特定的.我在主视图中添加了一个EditText,我也无法从中选择文本.
编辑2 …
我已经实现了一个ActionMode.Callback自定义文本选择功能WebView.我遇到的问题是选择和操作模式状态不匹配.
当我长按时,一切都很好.

当我与其中一个按钮或WebView(不包括实际选择)进行交互时,ActionMode应该销毁它,并且选择应该消失.

在Android 4.4,KitKat中,这正是发生的事情.
然而,这不是4.1.1 - 4.3,Jelly Bean中发生的情况.单击其中一个按钮时,不会删除选择.

当我在选择之外点击时,恰好相反.删除选择,但上下文操作栏仍保留在屏幕上.
Run Code Online (Sandbox Code Playgroud)
android selection webview contextual-action-bar android-actionmode
是否可以从Webview中选择文本然后进行复制和粘贴.有没有什么特别的方法可以做到这一点?请帮帮我..
我希望我的Android应用程序在文本中突出显示文本WebView.与Google Play book中的功能类似.有没有人知道如何实现这一目标?
我使用的是WebView因为我的内容是html格式.
基本上谈论这个效果:
