【发布时间】:2015-07-01 20:42:05
【问题描述】:
我使用带有许多 WebView 的 ViewPager,它用于显示 ePub。我的问题是 WebViews 只是被渲染/加载(我不太确定)他们相应的页面变得可见。在此之后页面不需要重新渲染,直到它从 ViewPagerAdapter 中销毁。 其后果是总有一小会儿的白页。如何将它平滑滚动到下一个 webView 的页面预渲染(之前未渲染)。
这是我的 PagerAdapter:
public class MagazineReaderPagerAdapter extends PagerAdapter {
private MagazineReaderActivity activity;
private EpubDocument epub;
public MagazineReaderPagerAdapter(Context ctx, EpubDocument epub)
{
activity = (MagazineReaderActivity) ctx;
this.epub = epub;
}
@Override
public int getCount() {
return epub.getContentDocuments().size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ReaderWebViewMulti view = new ReaderWebViewMulti(activity);
view.loadContentDocument(epub.getContentDocuments().get(position), epub);
((ViewPager) container).addView(view, 0);
return view;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((View) object);
}
}
ReaderWebViewMulti 从 WebView 扩展而来,实现了一个 loadContentDocument 方法,该方法通过 loadDataWithBaseURL 加载内容。
编辑: 在 activity-oncreate 中,setOffscreenPageLimit 设置为 3
viewPager.setOffscreenPageLimit(3);
为了指出问题所在,我在YouTube上做了一个小视频
从第 4 秒开始,您可以看到每个页面在已经可见时才被渲染。当我回去时一切都很好。
【问题讨论】:
-
当前设置的
ViewPager的offscreenPageLimit是什么? -
它设置为 3,我在文本中添加了这个
-
我遇到了完全相同的问题...我调试并创建了屏幕外片段,但是当我滚动页面时,它只是在页面滚动之前不会显示:S
-
嗨@Perroloco,你解决了你上面提到的问题了吗?我现在面临同样的问题,页面将在我滚动页面后呈现。
-
不,我还没有找到解决方案:(
标签: android webview android-viewpager