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