Android WebView JellyBean - >不应该发生:找不到基于rect的测试节点该怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

我的应用程序正在使用很多浏览器,这些浏览器位于由ViewPager保存的片段中。

每当我滑过我的Galaxy Nexus上的应用程序和Jellybean,我就会一次又一次地收到以下控制台消息:

08-23 13:44:03.374: E/webcoreglue(21690): Should not happen: no rect-based-test nodes found
提问于
用户回答回答于

发生此问题是因为在某些情况下,WebView无法注意到其可见矩形已更改,因此就webkit而言,该页仍不可见。因此,所有触摸都落在窗外,并被拒绝。

最清晰的修复方法是,当您知道WebView的可见性已更改(例如响应来自viewpager的setPrimaryItem回调),调用 webview.onScrollChanged(webview.getScrollX(), webview.getScrollY());

用户回答回答于

我花了几天的时间尝试了很多不同的东西。我注意到当方向改变时,onClick按钮上可见的WebView再次工作......所以我想出了这个办法。

在扩展WebView的类中使用它:

@Override
public boolean onTouchEvent(MotionEvent event) {

    if (event.getAction() == MotionEvent.ACTION_DOWN){

        int temp_ScrollY = getScrollY();
        scrollTo(getScrollX(), getScrollY() + 1);
        scrollTo(getScrollX(), temp_ScrollY);

    }

    return super.onTouchEvent(event);
}

扫码关注云+社区