在显示WebView组件时,onItemClickListener进入GridView时不会捕获单击事件

时间:2011-10-11 15:39:34

标签: android gridview webview onitemclicklistener

我需要在GridView中显示WebView组件。问题是在android 2.3.x上,onItemClickListener不会捕获点击事件。它在Android 2.2.x上没问题。我的问题依赖于webview函数isInTouchMode(),它在android 2.3上返回TRUE并在android 2.2上返回false。我认为解决方案设置为false这个参数,但我不知道如何! 有人可以帮我吗? 感谢

3 个答案:

答案 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手机)。但是,这并不能帮助我们这些反对模拟器的人。