1

根据android开发者指南,

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

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

4

2 回答 2

1

但是没有 setContentView(),每当我调用 getActionBar() 时,它都会返回 null

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

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

getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
于 2013-03-04T09:33:36.737 回答
0

您可以将片段添加到具有 id 的默认视图组android.R.id.content。您不需要使用来布局您的活动setContentView()

mFragmentTransaction.add(android.R.id.content, mFragment, mTag);
于 2013-03-04T09:47:23.100 回答