Android片段与复合控件

Ant*_*ton 19 controls android fragment android-lifecycle android-fragments

为什么要使用Android 3.0片段而不是复合控件?可以创建一个View继承者或复合控件一次并在任何地方使用它.

我已经阅读了http://android-developers.blogspot.com/2011/02/android-30-fragments-api.html但未找到答案.

Hen*_*nry 35

不同之处在于片段具有自己的生命周期(onPause,onCreate,onStart ...).通过生命周期,片段可以独立响应事件,通过onSaveInstanceState保存其状态,并被带回(例如,在来电后或用户单击后退按钮时恢复时).片段文档中总结了生命周期:

https://developer.android.com/guide/components/fragments.html#Lifecycle

您始终可以在复合视图周围包装片段或活动,因此只需将片段视为复合视图的容器,从而为它们提供独立的生命周期.

  • 我在http://stackoverflow.com/a/15824301/618881上回答了类似的问题.有人评论说,Android 4.2(API 17)现在允许嵌套片段. (4认同)

Cas*_*eyB 2

原因是让相同的代码在平板电脑和手机上运行。这些设备有不同的布局注意事项,片段允许您考虑到这一点,并使您的应用程序表现不同,而无需重写任何代码。