首页 > 解决方案 > Viewpager 适配器在 instantiateItem 处同时加载位置 0 和 1

问题描述

我有一个传递给 ViewPager 适配器的项目的 Arraylist。我在处理数据时遇到了问题,因为在适配器的

public Object instantiateItem(@NonNull ViewGroup container, int position),位置 0 和 1 在 ViewPager 切换到第二页之前同时加载。

这是典型的还是我错过了什么?

调用适配器时加载 Arraylist,即

mPhotoAdapter = new PhotoAdapter(mPhotos, this, this);

标签: androidandroid-viewpagerandroid-adapter

解决方案


是的,这很典型。ViewPager即使您没有滑入另一个页面,也会加载另一个页面。根据文档ViewPager,至少需要 1 个屏幕外页面。这意味着将至少加载一个额外的页面。ViewPager您可以通过在实例中调用此方法来更改屏幕外页面限制:

setOffscreenPageLimit (int limit)

推荐阅读