如何将片段放置到活动的默认根ViewGroup?

时间:2013-03-04 02:53:28

标签: android android-fragments android-actionbar

根据android开发者指南,

  

要开始使用,您的布局必须包含一个ViewGroup   将每个片段与选项卡关联。确保ViewGroup有一个   资源ID,以便您可以从制表符交换代码中引用它。   或者,如果选项卡内容将填充活动布局   (不包括操作栏),那么您的活动不需要布局   在所有(你甚至不需要调用setContentView())。相反,你   可以将每个片段放在默认的根ViewGroup中   请参阅android.R.id.content ID(您可以在中查看此ID)   片段交易期间下面的示例代码。

但是如果没有setContentView(),每当我调用getActionBar()时,它都会返回null。我想知道如何将片段放在default root ViewGroup中?我是通过XML还是以编程方式添加它?

2 个答案:

答案 0 :(得分:1)

  

但是没有setContentView(),无论何时我调用getActionBar(),它   返回null

您测试的Android版本是什么?如果我没记错,这确实发生在11和12 API级别,但在其他版本上它可以工作。

为避免复杂化,您只需将内容视图设置为具有简单FrameLayout的布局,并将其用作片段的容器。您也可以尝试在没有内容视图的情况下使用Window.FLAG_ACTION_BAR

getWindow().requestFeature(Window.FEATURE_ACTION_BAR);

答案 1 :(得分:0)

您可以将片段添加到ID为android.R.id.content的默认视图组。您无需使用setContentView()来布置活动。

mFragmentTransaction.add(android.R.id.content, mFragment, mTag);