我正在开发一个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;
    }

我找不到任何有类似问题的人。 我应该在清单文件中添加一些内容吗?

===============>>#1 票数:0

我认为, int screenLayout使用int screenLayout ,不应该这样做: https : int screenLayout

===============>>#2 票数: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就会根据设备选择使用哪些内容。

我建议找出您的设备是什么配置,也许只是一个大尺寸或其他尺寸。

  ask by Tobiasz Dziubinski translate from so

未解决问题?本站智能推荐: