如何使用 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 中的片段访问另一个片段?

如何使用 Firebase 分析跟踪 android 片段

如何使用java将数据从片段传递到android中的另一个片段?

如何使用Android片段管理器传递变量[重复]

如何在android中使用底部导航视图时恢复片段状态?

如何使用底部导航视图和 Android 导航组件将参数传递给片段?