Android非UI Fragment用法

ann*_*nna 21 android android-fragments android-fragmentactivity

我正在阅读有关FragmentsAndroid文档.定义片段UI的布局可以在Activity的布局中,在单独的.xml文件中定义,或者根本不定义.

根据文件

您还可以使用片段为活动提供背景行为,而无需显示其他UI.

为什么我需要使用另一个Fragment为Activity添加功能而不是在Activity中定义更多功能?这样的非UI片段是否只是为了模块化而使用?采用这种方法还有其他原因吗?我将欣赏一个适合使用非UI片段的示例.

提前感谢您的协助.

mar*_*inj 26

我想这是关于保留的片段,Inside片段可以调用setRetainedInstance(true),这样在配置更改期间不会重新创建片段.通常,当您旋转设备时,将重新创建所有片段.如果在onCreate()中调用setRetainedInstance(true),则不会重新创建片段实例.

什么用它? - 您可以在片段中放置一些数据,数组等,并且在配置更改期间不会销毁它.您还可以将异步任务放在此类片段中,并且在主活动旋转后,片段中的异步任务仍然可以提供其结果.

片段的另一个有用功能是您可以轻松地在多个活动中重复使用它们.这意味着您可以在非UI片段中放置一些常用逻辑.你可以说用你的活动的基类完成它,但是你只能扩展一个类.

谷歌的简单例子(实际上使用保留片段内的线程):

https://android.googlesource.com/platform/development/+/master/samples/ApiDemos/src/com/example/android/apis/app/FragmentRetainInstance.java

  • @alig屏幕旋转是您最常遇到的情况,有关完整列表,请点击此处:http://developer.android.com/guide/topics/manifest/activity-element.html#config (2认同)