使用requestFocusFromTouch的Android 4.4 WebView问题

时间:2013-11-26 21:57:56

标签: android webview scroll android-4.4-kitkat

在Android 4.4(构建目标18)中使用WebView时,我看到了一些意外行为。特别是一页我们有一些编辑文本字段,为了让软键盘适当弹出,我们不得不使用类似于这里描述的代码片段:

https://code.google.com/p/android/issues/detail?id=7189

    webview.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;
        }
    });

这在版本4.3中按预期工作,但从4.4开始,上面的代码导致了一个不良影响,即在完成触摸后将webview的内容快照/滚动回到页面顶部 - 向下滚动这页纸。

是否有其他人遇到过这种新行为 - 或者找到了解决方法?到目前为止,我唯一想到的是子类化允许编辑的webview(因此上面的代码可以从现在有滚动问题的只读页面中删除)。当然,如果页面同时滚动并具有编辑字段,则无效。

提前致谢!

0 个答案:

没有答案