3 回答
TA贡献1811条经验 获得超6个赞
我执行类似操作的方法是仅重写onTouchListener并调用GestureDetector来检测何时长按WebView并从中执行所需操作。这是一些示例代码,使您可以捕获长按事件,而无需牺牲WebView中的文本选择。希望这会有所帮助。
@Override
protected void onCreate(Bundle savedInstanceState) {
WebView mWebView = (WebView) findViewById(R.id.myWebView);
GestureDetector mGestureDetector = new GestureDetector(this, new CustomGestureListener());
mWebView.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View view, MotionEvent arg1) {
//Suggestion #1 - this just lets the touch to be handled by the system but allows you to detect long presses
mGestureDetector.onTouchEvent(arg1);
return false;
//Suggestion #2 - this code will only let the touch be handled by the system if you don't detect a long press
return mGestureDetector.onTouchEvent(arg1);
}
});
}
private class CustomGestureListener extends SimpleOnGestureListener {
@Override
public void onLongPress(MotionEvent e) {
//do stuff
}
}
TA贡献1804条经验 获得超3个赞
您的建议没有错;确实允许长时间按下其他功能。但是,它无法完成我想做的事情。即使我打startActionMode(mActionModeCallback)
了onLongPress
电话,本地上下文菜单仍然会出现。我想覆盖所述菜单,同时保持文本选择。
- 3 回答
- 0 关注
- 535 浏览
添加回答
举报