4

我正在使用FragmentStatePagerAdapterand ViewPager,默认起始页面为 0。我希望我的页面从任意页面开始,比如 5。这就是我显示 ViewPager 的方式:

viewPager.setAdapter(adapter);
viewPager.setCurrentItem(viewNumber, true);

但是,ViewPager 首先是在默认位置 (0) 创建的,然后切换到我想要的位置 (5)。所以我的片段是按以下顺序创建的:0、1、4、5、6。

我根本不希望创建 0 和 1 的片段。我怎样才能做到这一点?

4

1 回答 1

1

我怎样才能做到这一点?

将源代码复制ViewPager到您的项目中,将其重构到您自己的包中,并修改代码以适应。具体来说,您需要修改setAdapter()为不尝试布局或填充ViewPager,直到您通过某种新方法(例如lisaWouldLikeYouToPopulateNowKThxBye())手动请求。

根据您在子类中持有的某些标志,您可能能够摆脱子类化ViewPager和覆盖populate()实际上不做它的工作,这样您就可以避免PagerAdapter在您setCurrentItem()调用之前填充。

或者,不要管它。目前尚不清楚您认为这样做有什么好处,更不用说它们是否值得您为 fork 维护头痛ViewPager

于 2013-06-12T18:49:31.247 回答