3

我目前正在编写一个使用 ActionBar 选项卡进行导航的应用程序。当设备处于纵向模式时,用户可以选择两个选项卡,每个选项卡都有一个关联的片段。当平板电脑切换到横向时,我希望这些选项卡消失,因为我为横向定义了两个窗格布局,其中每个窗格承载一个片段。我知道在切换期间会重新创建 Activity,因此我可以通过仅在方向为纵向时在 OnCreate 中创建选项卡来在代码中实现此目的。但是,两个窗格布局仅用于平板电脑(我在 layout-large-land 中定义了它)。对于横向手机,应使用带有选项卡的单窗格布局。有没有一种方法可以编写类似“仅在两个窗格布局文件被膨胀时使用选项卡”的代码,即

4

2 回答 2

4

将布尔变量添加到 values-large-land 内的资源并将其设置为 true,然后在代码中使用它来设置选项卡:

boolean isDualPane = getResources().getBoolean(R.boolean.dualPane);
if(!isDualPane) {
 setupActionBarTabs();
}
于 2013-05-11T23:00:00.830 回答
3

在这两个文件夹中定义这个布尔值:

值土地/bools.xml:

<bool name="isInLandscape">true</bool>

和这个:

值端口/bools.xml

<bool name="isInLandscape">false</bool>

现在你可以这样做:

boolean isInLandscapeMode = getResources().getBoolean(R.bool.isInLandscape);

现在您可以基于此值创建选项卡,因为旋转屏幕时会重新创建 Activity:

if (!isInLandscapeMode){

// add tabs

}
于 2013-05-11T23:01:48.947 回答