A Fragment是一个的一部分Activity
, 其中有:
- 它自己的生命周期
- 接收自己的输入事件
- 可以添加或删除,而
Activity
在跑。
A Fragment
必须始终嵌入到Activity
.
Fragments
在 HoneyComb (3.0) 之前不是 API 的一部分。如果你想使用Fragments
在针对 HoneyComb 之前的平台版本的应用程序中,您需要添加支持包到您的项目并使用FragmentActivity握住你的Fragments
. The FragmentActivity
类有一个API用于处理Fragments
,而Activity
HoneyComb 之前的 class 则不然。
如果您的项目仅针对 HoneyComb 或更新版本,您应该使用Activity
并不是FragmentActivity
握住你的Fragments
.
一些细节:
Use android.app.Fragment
with Activity
. Use android.support.v4.app.Fragment
with FragmentActivity
。不添加支持包Fragment
to an Activity
因为它会导致抛出异常。
需要注意的一点是:FragmentManager
and LoaderManager
FragmentActivity 有单独的支持版本:
如果您使用的是Fragment
in an Activity
(HoneyComb 及以上),致电
-
getFragmentManager()
to get android.app.FragmentManager
-
getLoaderManager()
to get android.app.LoaderManager
如果您正在使用Fragment
in a FragmentActivity
(HoneyComb 之前),请致电:
-
getSupportFragmentManager()
to get android.support.v4.app.FragmentManager
.
-
getSupportLoaderManager()
to get android.support.v4.app.LoaderManager
so, don't do
//don't do this
myFragmentActivity.getLoaderManager();
//instead do this:
myFragmentActivity.getSupportLoaderManager();
or
//don't do this:
android.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager();
//instead do this:
android.support.v4.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager()
还需要知道的是,虽然片段必须嵌入到Activity
它不一定是Activity
布局。它可以用作活动的隐形工作人员,没有自己的 UI。