如何使用 Android 片段?
Posted
技术标签:
【中文标题】如何使用 Android 片段?【英文标题】:How to use Android Fragments? 【发布时间】:2012-02-26 14:23:29 【问题描述】:我正在查看一些演示代码,这些代码展示了如何使用片段适配器(在本例中为选项卡适配器)。我很好奇 instantiate()
方法究竟做了什么。我在此页面上的以下演示代码中看到它使用了它:
http://developer.android.com/reference/android/support/v4/view/ViewPager.html
(参见TabsAdapter
类中的getItem()
方法)
如果我正确阅读了演示代码,那么每次用户单击其中一个选项卡时,都会创建一个新片段?因此片段又开始了整个生命周期(onAttach()
...onCreate()
...等)?这听起来非常低效。我认为代表每个选项卡内容的片段应该只实例化一次(可能在addTab()
方法中),然后保存到某个集合中,在调用getItem()
时可以获取它。
如果我在这方面有任何错误,请纠正我。我正在尝试更好地了解如何管理片段。
【问题讨论】:
【参考方案1】:我的钱是setCurrentItem()
函数实际上不会破坏该选项卡中显示的现有片段。否则,适配器实际上没有太多理由拥有可用选项卡列表。很可能,当您从一个选项卡切换到另一个选项卡时,setCurrentItem()
只是将 UI 从当前活动的 Fragment 中分离出来(或调用其 onPause()
方法),然后为新选择的 Fragment 重新附加 UI(或调用其 @987654324 @方法)。
但是,如果您有疑问,可以阅读源代码:)
希望对你有帮助, 大卫
【讨论】:
【参考方案2】:我找到了问题的解释here
【讨论】:
以上是关于如何使用 Android 片段?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Kotlin 从 Android 中的片段访问另一个片段?