gpt4 book ai didi

java - offScreenPageLimit 如何为 viewpager 工作

转载 作者:行者123 更新时间:2023-11-29 06:37:48 28 4
gpt4 key购买 nike

走出offScreenPageLimit后,系统调用什么获取新的 View 或页面返回?

最佳答案

source code for ViewPager确实是找到答案的最佳场所。

简而言之,ViewPager 保留一个内部项目列表(表示“页面”)。此列表中的项目数基于 mOffScreenPageLimit 值。默认设置为 1,但您可以通过调用 setOffscreenPageLimit(int limit) 进行更改。

在(包保护)方法 populate() 中,ViewPager 被页面填充,下面的代码 fragment 位于:

final int pageLimit = mOffscreenPageLimit;
final int startPos = Math.max(0, mCurItem - pageLimit);
final int N = mAdapter.getCount();
final int endPos = Math.min(N-1, mCurItem + pageLimit);

这决定了支持 PagerAdapter 的数据集的边界,因此决定了将请求页面的位置。

不存在的页面是使用(受包保护的)addNewItem() 方法创建的,该方法基本上最终会在关联的 PagerAdapter< 上调用 instatiateItem()/。这是您通常直接或通过具体子类之一实现的部分。

如果在此过程中发生某些变化,即当支持数据集发生变化时,或者当 setOffscreenPageLimit() 以不同的值再次调用时,项目可能会从内部列表中删除,并且调用PagerAdapter 上的 destroyItem() 通常紧随其后。

这是否回答了您的问题?如果不是,请尝试比单行更具体一些 - 这应该有助于我们更好地帮助您。 :)

关于java - offScreenPageLimit 如何为 viewpager 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17826396/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com