在我的Android应用中,我使用带有FragmentStatePagerAdapter的标签。我有很多选项卡,所以这是一个问题,FragmentStatePagerAdapter在应用程序启动时为所有选项调用onCreateView方法。这完全没用,因为当我打开选项卡时再次调用该方法。有没有办法禁止在开头为所有选项卡调用onCreateView方法(只应为当前选项卡和选项卡左右调用它)?
答案 0 :(得分:0)
当应用程序启动时,FragmentStatePagerAdapter为所有这些方法调用onCreateView方法
ViewPager
在递送PagerAdapter
时会加载2-3页。只有在用户更改页面时才会创建其他页面。 ViewPager
本身确保当前页面的任何一侧都有一个页面(除了页面范围的任何一端)。
仅在创建片段或发生配置更改(例如,屏幕旋转)时才会调用这是完全没用的,因为当我打开一个标签
时再次调用该方法
onCreateView()
。 FragmentStatePagerAdapter
只保留一定数量的页面,因此如果用户挥动很多页面,FragmentStatePagerAdapter
将丢弃现有的片段,并最终在用户将来返回时重新创建它们。
有没有办法禁止在开头为所有标签调用onCreateView方法
默认情况下它已经表现出来了。
例如,如果您执行this sample project,请将其更改为使用FragmentStatePagerAdapter
,并向Log.e()
的{{1}}添加onCreateView()
次来电,您会看到最初显示EditorFragment
时进行两次onCreateView()
次调用,并在需要创建片段实例的每次滑动时另外调用。