Android ViewPager方向更改

时间:2015-09-09 11:58:05

标签: android android-fragments android-viewpager

我已阅读 @ antonyt 对此How to resolve MVC4 Twitter Bootstrap project fail from simple Nuget installations in VS2012?的回复,FragmentManager.findFragmentByTag()会尝试重新使用getItem(int)找到的现有片段。

我试过这个。首次需要FragmentPagerAdapter时,会调用Fragment的{​​{1}}。在更改方向时,不会调用getItem,这符合 @ antonyt的答案。但为什么再次调用onCreate()的{​​{1}}呢?我以为它没有被摧毁?

1 个答案:

答案 0 :(得分:1)

未设置setRetainInstance(true)的所有片段在方向更改时被销毁。在更改方向之后,将重新创建所有片段并通过片段管理器重新附加(因此片段将贯穿整个生命周期)。

ViewPager附加的所有片段都会添加到具有特殊标记的片段管理器中。 ViewPager尝试重用方向更改后重新创建的片段(通过在片段管理器中搜索标记)。如果不存在这样的片段,则调用FragmentPagerAdapter.getItem(int)来创建新片段。