Fragment的哪个函数是从viewpager调用的



我正在从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()中做。

最新更新