我正在实现一个带有 webviews 的 ViewPager。webviews 包含与用户交互的javascripts。
第一个页面上的 webview 工作,而其他人不工作。
如果 webview 高于屏幕,则在我向下或向上滚动后,它就可以工作。我认为这就像首先显示的 webview 保持“焦点”而不是让其他人获得事件。
我无法解决它,如果我将它们设置为第一页,所有 webview 都可以工作,但它们在以下页面中不起作用。
我正在实现一个带有 webviews 的 ViewPager。webviews 包含与用户交互的javascripts。
第一个页面上的 webview 工作,而其他人不工作。
如果 webview 高于屏幕,则在我向下或向上滚动后,它就可以工作。我认为这就像首先显示的 webview 保持“焦点”而不是让其他人获得事件。
我无法解决它,如果我将它们设置为第一页,所有 webview 都可以工作,但它们在以下页面中不起作用。
好的,经过一番头疼后,我发现这与此处显示的问题相同: Android WebView JellyBean -> 不应该发生:找不到基于矩形的测试节点
我通过继承 WebView 并覆盖该方法来解决它:
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN){
webview.onScrollChanged(webview.getScrollX(), webview.getScrollY());
}
return super.onTouchEvent(event);
}
可能显示的第一个 webview 是正确创建的,而另一个由 viewpager 在后台创建的 webview 接收事件的区域错误。
也许有更好的方法来解决它,但至少现在它有效。