我正在创建一个使用片段的应用程序,以实现UI灵活性。
在电话纵向和横向模式下,fragmnets的外观如下:
在Tablets纵向和横向模式下,其显示如下:
我主要关心的是ACTION BAR。我只想在“片段B”显示为“全屏”的LANDSCAPE模式下隐藏SMARTPHONE的操作栏。我想在所有其他情况下都显示操作栏,如我在图像中所示。
我已经搜索了整个堆栈溢出,但是没有找到任何解决方案。谁能帮我?提前致谢。
要解决此问题,您需要做两件事:
在文件夹values-sw600dp
内创建一个新的资源文件res
夹。(这仅适用于3.2之前的Android版本,对于以前的版本,请创建一个values-xlarge
文件夹)
然后在这里我们创建一个文件并设置以下值:
<resources>
<bool name="isTablet">true</bool>
</resources>
然后,在标准值文件(如res / values /)中,将此类布尔值设置为false:
错误的
现在,您可以检查您是否在平板电脑大小的设备中运行:
boolean tabletSize = getResources().getBoolean(R.bool.isTablet);
if (tabletSize) {
// do a
} else {
// do b
}
在你onCreateView
在你的方法fragmentB
后检查,如果你使用的是智能手机或平板电脑(使用新资源-file.xml)我们要检查的方向。如果方向是LANDSCAPE,则我们隐藏操作栏。
boolean tabletSize = getResources().getBoolean(R.bool.isTablet);
if (!tabletSize)
{
//Lets check orientation
if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
getActivity().getActionBar().hide(); //getSupportActionBar().hide() if using appcompat
}
}
希望能帮助到你
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句