我想禁用webView上的长按,因此我无法选择其中的文本,我使用三种方法来做到这一点但没有任何效果:
1) android:longClickable="false"
2) webView.setLongClickable(false);
3) webView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return true;
}
});
所以请帮忙。
答案 0 :(得分:9)
要停用长按,您需要首先启用长按setLongClickable(true);
,然后启用setOnLongClickListener
,然后不返回任何内容:
webview.setLongClickable(true);
webview.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return true;
}
});
如果您只需要禁用文字选择,最好将以下CSS添加到您的网页,它将禁用文字选择:
body {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
查看Mozilla文档here。
答案 1 :(得分:0)
试试这个:
public void SelectText(View v) {
try {
KeyEvent shiftPressEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN,
KeyEvent.KEYCODE_ESCAPE, 0, 0);
shiftPressEvent.dispatch(v);
} catch (Exception e) {
throw new AssertionError(e);
}
}
或:
public boolean onTouchEvent(MotionEvent "ACTION_DOWN") {
try {
KeyEvent shiftPressEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN,
KeyEvent.KEYCODE_SHIFT_LEFT,0,0);
shiftPressEvent.dispatch(webview);
} catch (Exception e) {
throw new AssertionError(e);
}
return false;
}
答案 2 :(得分:0)
试试这个:
webView.setOnLongClickListener(null);
答案 3 :(得分:0)
这对我有用,如https://stackoverflow.com/a/12793740/5035343
所示mWebView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return true;
}
});
mWebView.setLongClickable(false);
要消除长时间点击造成的震动,你可以尝试一下。
mWebView.setHapticFeedbackEnabled(false);
答案 4 :(得分:0)
此方法对我有用,请查看它可能对您有帮助。
1)只需使用此webView.setLongClickable(false);
2)在html中使用css:
body {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
3)用html <body oncontextmenu="return false;">