我需要在GridView中显示WebView组件。问题是在android 2.3.x上,onItemClickListener不会捕获点击事件。它在Android 2.2.x上没问题。我的问题依赖于webview函数isInTouchMode(),它在android 2.3上返回TRUE并在android 2.2上返回false。我认为解决方案设置为false这个参数,但我不知道如何! 有人可以帮我吗? 感谢
答案 0 :(得分:2)
我使用了以下代码:
public class GifView extends WebView {
/**
* @param context
* @param attrs
*/
public GifView(Context context, AttributeSet attrs) {
super(context, attrs);
setClickable(false);
setFocusable(false);
setFocusableInTouchMode(false);
setLongClickable(false);
}
// actions
}
答案 1 :(得分:0)
已解决:我创建了扩展WebView的MyWebView对象,并覆盖了一些方法:
@Override
public boolean isInTouchMode() {
return false;
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
return false;
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
return false;
}
答案 2 :(得分:0)
Jason Shah解释了this post中的所有内容:
处理Android 2.3 WebView破坏的AddJavascriptInterface
(对于这个技术主题,请向我的普通读者道歉。)
Google Android团队发布了Android 2.3(“Gingerbread”)SDK 两天前,大张旗鼓地说。这已经发送了科技博客世界 像往常一样,陷入出版狂潮。但是,潜在的 灾难性的bug已经浮出水面,可能会导致成千上万的崩溃 打开应用程序后立即在Android电子市场中打开应用程序。
问题在这里简明扼要地描述: http://code.google.com/p/android/issues/detail?id=12987简而言之:很多 应用程序使用嵌入式WebView显示其全部或部分UI 呈现HTML。这些WebViews使用了一个很棒的功能 JavaScript(在HTML中)到“环绕”的本机Java代码 的WebView。这个桥在Android 2.3中完全破解。尝试去 甚至一个基本的调用立即打破WebView并崩溃 应用
我相信Android团队的成员都知道这个问题,并且 从早期报道来看,它并不影响Nexus S(第一款Android 2.3手机)。但是,这并不能帮助我们这些反对模拟器的人。