setOnClickListener 不响应 Android WebView [英] setOnClickListener not response on Android WebView
问题描述
我有包含 TextView 的 Android LisView 来显示列表中的数据,
I have Android LisView that was contain TextView to display the data in the list,
我添加将其更改为 Webview,在这样做之后,除了不再响应的 setOnClickListener 之外,一切看起来都很好..
I add to change it to Webview, after doing that everything look good except the setOnClickListener that not responding anymore..
我已经阅读了有关 Webview 的内容,发现不支持 setOnClickListener,而是支持 setOnTouchListener
I have read about the Webview and found that setOnClickListener is not supported, instead setOnTouchListener is supported is there
在 Android WebView 中使用与 setOnClickListener 相同功能的方法?
a way to use the same functionality as setOnClickListener in Android WebView ?
像这样:
myWebView.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//do it ..
}
});
谢谢(:
推荐答案
我最终得到了这个解决方案:
I ended up with this solution:
public class ClickableWebView extends WebView {
private static final int MAX_CLICK_DURATION = 200;
private long startClickTime;
public ClickableWebView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public ClickableWebView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ClickableWebView(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
startClickTime = Calendar.getInstance().getTimeInMillis();
break;
}
case MotionEvent.ACTION_UP: {
long clickDuration = Calendar.getInstance().getTimeInMillis() - startClickTime;
if(clickDuration < MAX_CLICK_DURATION) {
super.performClick();
}
}
}
return true;
}
}
备注:
- 抑制
WebView
内任何内容的所有点击事件(例如:超链接) - 只需通过在 xml 或 Java 中添加
onClick
来添加OnClickListener
- 不中断滚动手势
- suppresses all click-events to anything inside the
WebView
(e.g.: hyperlinks) - simply add
OnClickListener
by adding anonClick
in xml or in Java - does not interupt scrolling-gestures
感谢 Stimsoni 如何区分 onTouchEvent() 中的移动和点击?
Thanks to Stimsoni Answer to How to distinguish between move and click in onTouchEvent()?
这篇关于setOnClickListener 不响应 Android WebView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!