阻止ViewPager始终在位置0实例化片段?

时间:2013-06-12 18:41:35

标签: android android-fragments android-viewpager fragmentstatepageradapter

我正在使用FragmentStatePagerAdapterViewPager,默认的起始页是0.我希望我在一些仲裁页面上开始,比如说5.这就是我展示ViewPager的方式:< / p>

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

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

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

1 个答案:

答案 0 :(得分:1)

  

我怎样才能做到这一点?

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

可能能够通过子类化ViewPager并覆盖populate()来实现根据您在子类中保存的某个标志实际完成其工作,以便您可以避免在PagerAdapter来电之前从setCurrentItem()填充。

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