2012-02-04 108 views
1

我正在看一些演示代码,演示如何使用片段适配器(在这种情况下选项卡适配器)。我很好奇instantiate()方法的作用。我看到它在下面的演示代码中使用此页上:如何使用Android碎片?

http://developer.android.com/reference/android/support/v4/view/ViewPager.html

(见getItem()方法TabsAdapter类中)

如果我正确地读演示代码,每一个用户时间点击其中一个标签,会创建一个新的片段?因此片段又开始了整个生命周期(onAttach() ... onCreate() ...等)?这听起来非常低效。我认为代表每个选项卡内容的片段应仅实例化一次(可能在addTab()方法中),然后将其保存到某个集合中,以便在调用getItem()时获取该集合。

如果我误解了这些,请纠正我。我试图更好地理解如何管理片段。

回答

0

我的钱会被setCurrentItem()函数实际上不会销毁该选项卡中显示的现有片段。否则,适配器具有可用选项卡列表的真正原因并不多。很可能,当你从一个标签页切换到另一个标签页时,setCurrentItem()只是将UI从当前活动的Fragment中分离出来(或者调用它的onPause()方法),然后重新附加新选择的Fragment的UI(或者调用它的onResume( ) 方法)。

但是,如果你有疑问的时候,你可以阅读源代码:)

希望它能帮助, 大卫