我正在从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);
答案 0 :(得分:3)
如果您正在使用FragmentPagerAdapter
,那么当您调用setCurrentItem()
时,视图抓取器已将该片段的视图缓存在内存中,因此当您切换时,不会对该片段进行生命周期调用项目。 (Viewpager已经实例化了片段,并通过调用onCreate,onCreateView,onStart,onResume)。
Viewpager有一个名为setOffscreenPageLimit()
的方法,它控制在视图层次结构中缓存多少个片段。如果您想调整它,请查看此android doc。
如果您希望在他们之间分页时销毁并重新创建片段,请结帐FragmentStatePagerAdapter。它为此做了更多。
如果您只需要对viewpager的更改做出反应,请在viewpager的onPageSelected()
中执行此操作。