问题
I want to disable the long click on webView so I cant select the text in it, and I use three ways to do that but nothing work:
1) android:longClickable="false"
2) webView.setLongClickable(false);
3) webView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return true;
}
});
So any help please.
回答1:
To disable long clicks you need to first enable long click setLongClickable(true);
then the setOnLongClickListener
, and return nothing:
webview.setLongClickable(true);
webview.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return true;
}
});
If you only need to disable text selection it's better to add the following CSS to your webpage and it will disable text selection:
body {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
Check the Mozilla documentation here.
回答2:
Try this:
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);
}
}
or :
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;
}
回答3:
Try this:
webView.setOnLongClickListener(null);
回答4:
This worked for me, as shown at https://stackoverflow.com/a/12793740/5035343
mWebView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return true;
}
});
mWebView.setLongClickable(false);
And to remove the viberation caused by the long click, you can try this.
mWebView.setHapticFeedbackEnabled(false);
回答5:
This method is useful for me, Check it may be help you guys.
1) Just use this webView.setLongClickable(false);
2) use in html with 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) replace body tag with this in html <body oncontextmenu="return false;">
来源:https://stackoverflow.com/questions/15764311/how-to-disable-long-click-on-webview-in-android