2

针对不同设备尺寸的不同布局的经典设置:

要求:

  • 手机/7" 平板电脑 - 单窗格
  • 10 英寸平板电脑 - 双窗格

布局是:

  • layout/main.xml- 单窗格布局
  • layout/main-dual.xml- 双窗格布局

并且在 10" 中values-large/refs.xml完美运行:

<item name="main" type="layout">@layout/main-dual</item>

但是,在 7" 中使用此values-sw600dp/refs.xml功能不会:

<item name="main" type="layout">@layout/main</item>

我想这是因为我自己引用了主布局。引用具有不同名称的副本main.xml按预期工作。

完全没有refs.xmlinvalues-sw600dp会产生双窗格布局。

例外情况onCreate()

android.content.res.Resources$NotFoundException: Resource ID #0x7f0e0000 type #0x1 is not valid
03-14 18:36:45.591: E/AndroidRuntime(2078):     at android.content.res.Resources.loadXmlResourceParser(Resources.java:2144)
03-14 18:36:45.591: E/AndroidRuntime(2078):     at android.content.res.Resources.getLayout(Resources.java:853)

所以我的问题是如何引用默认布局values-xxx/refs.xml

4

2 回答 2

0

试试这些。

您可以直接在 res 文件夹中进行布局。

res/layout/main_activity.xml           # For handsets (smaller than 600dp available width)
res/layout-sw600dp/main_activity.xml   # For 7” tablets (600dp wide and bigger)
res/layout-sw720dp/main_activity.xml   # For 10” tablets (720dp wide and bigger)
于 2013-03-15T10:01:59.580 回答
0

我遇到了同样的问题,这是我放置 ref.xml 文件的地方。

对于我的大型和 sw600dp 相关文件,我将它们正确放置在.../res/values-largeand.../res/values-sw600dp文件夹中。但是,我放置了默认.../res/layout文件夹而不是.../res/values文件夹。将其移动到正确的目录后,事情按预期工作。

在android studio中,您可以在左上角的组合框并选择Android它,它只会显示android相关的资源/文件。当我弄错时,第一个refs.xml出现在 layout 下,另外两个出现在values/refs.xml. 我确实有这张照片要发布,但我的声望点还不够高。

于 2014-09-25T18:02:33.780 回答