我正在开发一个Android应用程序,它需要在横向和其他屏幕尺寸中具有不同的平板电脑布局。我在不同的文件夹中创建了不同的布局,就像在android教程(http://developer.android.com/training/multiscreen/screensizes.html)中建议的那样。
所以我有layout-xlarge,layout-xlarge-land等等,布局预览似乎可以识别不同设备的布局,但是当我启动应用程序时,布局不再被识别为每个设备。以下代码始终返回正常大小的布局:
int screenLayout = context.getResources().getConfiguration().screenLayout;
screenLayout &= Configuration.SCREENLAYOUT_SIZE_MASK;
switch (screenLayout) {
case Configuration.SCREENLAYOUT_SIZE_XLARGE:
initXLargeLayout();
return;
default:
initViePagerDefaultLayout();
return;
}
我找不到有类似问题的人。我应该向清单文件添加内容吗?
答案 0 :(得分:0)
我认为,您不应该使用int screenLayout
,而应该执行以下操作:https://stackoverflow.com/a/9308284/4907293
答案 1 :(得分:0)
这可能是因为您在没有xlarge屏幕的设备上启动,因此它会进入您的默认设置。你在用什么设备?
顺便说一句,您不必执行该开关案例代码,因为Android会为您检测配置并从布局文件夹中选择(xlarge,mdpi等)并自动使用相应的布局。
您的文件夹结构应如下所示:
res
├── layout
│ └── activity_main.xml
├── layout-xlarge
| └── activity_main.xml
└── layout-xlarge-land
└── activity_main.xml
您只需在代码中执行一次setContentView(R.layout.activity_main.xml),Android将负责根据设备选择使用哪一个。
我建议找出你的设备是什么配置,也许它只是一个大的或其他尺寸。