从View Pager调用Fragment的哪个功能?

时间:2014-06-30 07:24:49

标签: android android-fragments android-actionbar android-viewpager

我正在从viewPager.setCurrentItem(position)设置我的活动中的当前选项卡,这完全打开了所需的片段但我想知道从viewPager设置currentItem时调用片段的哪个函数。我认为onResume()应该有在读取片段生命周期后调用,但实际上没有调用onResume()。

我的活动代码:

viewPager = (ViewPager) findViewById(R.id.pager); actionBar = getActionBar(); mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); viewPager.setAdapter(mAdapter); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

选择标签的代码: viewPager.setCurrentItem(position);

1 个答案:

答案 0 :(得分:3)

如果您正在使用FragmentPagerAdapter,那么当您调用setCurrentItem()时,视图抓取器已将该片段的视图缓存在内存中,因此当您切换时,不会对该片段进行生命周期调用项目。 (Viewpager已经实例化了片段,并通过调用onCreate,onCreateView,onStart,onResume)。

Viewpager有一个名为setOffscreenPageLimit()的方法,它控制在视图层次结构中缓存多少个片段。如果您想调整它,请查看此android doc

如果您希望在他们之间分页时销毁并重新创建片段,请结帐FragmentStatePagerAdapter。它为此做了更多。

如果您只需要对viewpager的更改做出反应,请在viewpager的onPageSelected()中执行此操作。