我正在从viewpage . setcurrentitem(位置)设置我的活动中的当前选项卡,这完全打开了所需的片段,但我想知道片段的哪个函数在从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);
如果您使用FragmentPagerAdapter
,那么当您调用setCurrentItem()
时,片段的视图已经由viewpager缓存在内存中,因此当您在项目之间切换时,不会对片段进行生命周期调用。(Viewpager已经实例化了片段,并且调用了它的onCreate, onCreateView, onStart, onResume)。
Viewpager有一个叫做setOffscreenPageLimit()
的方法,它控制有多少片段将被缓存到视图层次结构中。如果你想调优,请检查这个android文档。
如果你想要你的片段被销毁并重新创建,当你在它们之间切换时,签出FragmentStatePagerAdapter。
如果你只需要对viewpager的变化做出反应,在viewpager的onPageSelected()
中做。