根据android开发者指南,
要开始使用,您的布局必须包含一个ViewGroup 将每个片段与选项卡关联。确保ViewGroup有一个 资源ID,以便您可以从制表符交换代码中引用它。 或者,如果选项卡内容将填充活动布局 (不包括操作栏),那么您的活动不需要布局 在所有(你甚至不需要调用setContentView())。相反,你 可以将每个片段放在默认的根ViewGroup中 请参阅android.R.id.content ID(您可以在中查看此ID) 片段交易期间下面的示例代码。
但是如果没有setContentView()
,每当我调用getActionBar()
时,它都会返回null。我想知道如何将片段放在default root ViewGroup
中?我是通过XML还是以编程方式添加它?
答案 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);