1

我正在查看一些演示代码,这些代码展示了如何使用片段适配器(在本例中为选项卡适配器)。我很好奇这个instantiate()方法到底是做什么的。我看到它在此页面上的以下演示代码中使用:

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

(见类中的getItem()方法TabsAdapter

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

如果我在这方面有误,请纠正我。我试图更好地理解如何管理片段。

4

2 回答 2

0

我能够在这里找到我的问题的解释

于 2012-02-05T05:37:56.437 回答
0

我的钱将在于该setCurrentItem()功能实际上不会破坏该选项卡中显示的现有片段。否则,适配器实际上没有太多理由拥有可用选项卡列表。很可能,当您从一个选项卡切换到另一个选项卡时,setCurrentItem()只需将 UI 与当前活动的 Fragment 分离(或调用其onPause()方法),然后为新选择的 Fragment 重新附加 UI(或调用其onResume()方法)。

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

希望它有帮助,大卫

于 2012-02-04T01:33:20.533 回答