Android将触摸事件传递给WebView的内部内容
Posted
技术标签:
【中文标题】Android将触摸事件传递给WebView的内部内容【英文标题】:Android passing touch event to WebView's inner content 【发布时间】:2013-11-07 14:04:45 【问题描述】:我有一个 web 视图,我设置了一个 onTouchListener 以捕获实际视图上的滑动事件。
我还在 WebView 上设置了一个 WebViewClient,以便在单击 webview 中的某些链接时覆盖 Url Loading。
问题是 OnTouch 处理程序总是首先接收动作,即使我返回 false(当不是滑动时)它也不会将触摸事件传递给内部 html 内容,因此实际上从未点击过链接。如果我删除 onTouchListener 它工作正常。是否有可能以某种方式将触摸事件传递给内容?
【问题讨论】:
【参考方案1】:您需要在主活动的 OnCreate() 中设置一个带有 requestFocus() 的 OnTouchListener():
mWebView = (MyWebView) findViewById(R.id.webview);
mWebView.setOnTouchListener(new View.OnTouchListener()
@Override
public boolean onTouch(View v, MotionEvent event)
switch (event.getAction())
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_UP:
if (!v.hasFocus())
v.requestFocus();
break;
return false;
);
【讨论】:
它对我不起作用....view.officeapps.live.com/op/view.aspx?src=http://… 帮帮我先生【参考方案2】:不要使用 OnTouchListener,而是在你的 WebView 中覆盖 OnTouchEvent:
@Override
public boolean onTouchEvent(MotionEvent event)
// do your stuff here... the below call will make sure the touch also goes to the webview.
return super.onTouchEvent(event);
【讨论】:
当我加载 webview 时只有它的工作。在加载 webview 后当我触摸它不工作......view.officeapps.live.com/op/view.aspx?src=http://… 帮助我先生 函数onTouchEvent
不存在以上是关于Android将触摸事件传递给WebView的内部内容的主要内容,如果未能解决你的问题,请参考以下文章
将 UICollectionView 触摸事件传递给其父 UITableViewCell