我正在使用包含WebViews的ViewPager。水平滚动适用于放大的页面(WebView滚动到最后,然后ViewPager滚动逻辑跳入)但是对于可滚动的div失败(例如在亚马逊或其他在线商店中滚动产品图像的轮播)。在这里,ViewPager立即开始滚动页面,而不是首先滚动WebView的轮播。
ViewPager本身包含在SwipeRefreshLayout中以实现pull-to-refresh。垂直滚动可以在canChildScrollUp()方法的帮助下工作。尽管如此,这不应该影响水平滚动。
布局如下(简化):
<android.support.v4.widget.SwipeRefreshLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent">
// Bunch of WebViews
</android.support.v4.view.ViewPager>
</android.support.v4.widget.SwipeRefreshLayout>
WebViews是以编程方式在ViewPager的PagerAdapter的instantiateItem()方法中创建的。
@Override
public Object instantiateItem(ViewGroup container, int position) {
WebView webView = new WebView(context);
webView.loadUrl("https://www.google.com");
container.addView(webView);
return webView;
}
我正在使用支持库25.1.1和Android系统WebView 56.0.2924.87。
提前致谢和最诚挚的问候!
TL; DR:我需要一个不滚动的ViewPager,直到无法再滚动WebView的底层HTML div。