使用requestFocusFromTouch的Android 4.4 WebView问题

use*_*615 5 android scroll webview 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;
        }
    });
Run Code Online (Sandbox Code Playgroud)

这可以通过版本4.3按预期工作,但从4.4开始,上面的代码导致了一个不希望的效果,即在向下滚动页面后,在完成触摸时将webview的内容快照/滚动回到页面顶部.

有没有其他人经历过这种新行为 - 或者想出了一个解决方法?到目前为止,我唯一想到的是子类化允许编辑的webview(因此上面的代码可以从现在有滚动问题的只读页面中删除).当然,如果页面既滚动又有编辑字段,这将无效.

提前致谢!