【问题标题】:Aliasing a layout resource with same name just different screen qualifier别名具有相同名称的布局资源只是不同的屏幕限定符
【发布时间】:2011-07-31 18:13:45
【问题描述】:

我的纵向和横向布局不同;但是在平板电脑上(例如,非常大的屏幕,xlarge 布局限定符)我只想在两个方向上使用纵向版本。

/res/layout/abc.xml

/res/layout-land/abc.xml

/res/layout-xlarge/abc.xml

由于第一个和最后一个布局相同,我正在考虑使用别名。但我无法从Android docs 中弄清楚如何在我的声明中引用限定符特定布局...

想法?

【问题讨论】:

  • 为什么不通过设置一个默认资源来根据分辨率或纵横比或某些条件动态加载资源。
  • 我宁愿让平台自动处理它......代码越少越好......
  • 它变得更加复杂。我将这些布局用于主屏幕小部件,显然合并/包含技术不起作用。
  • 刚刚在我找到你的问题之前发布了同样的问题......:/这里没有答案意味着 - 没有答案? 叹息

标签: android android-layout


【解决方案1】:

我正在和他打架!同样的问题,终于找到了解决方案,所以即使问题很老,也许有人觉得它有用

  1. 将纵向布局放入/res/layout/abc.xml(你已经有了)

  2. 将横向布局放入/res/layout/abc_land.xml

  3. 用内容创建文件layout.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
      <item name="abc" type="layout">@layout/abc_land</item>
    </resources>
    
  4. 将此文件复制到您的/res/values-land//res/values-xlarge/ 目录中

重要的是,您的layout.xml 文件包含对改进(横向)文件abc_land.xml 的引用,该文件也存储在layout 目录中,并且文件也位于values-x 目录下,而不是layout-x 一次。

我还尝试将两个文件 abc_land.xmlabc_port.xml 放入布局目录,并在它们上创建来自 /res/values-land//res/values-port//res/values-xlarge/ 目录的别名,并且似乎工作,所以它也是可用的解决方案在布局中做出一些“秩序”!

【讨论】:

  • 诺诺,我认为是正确的layout.xml。检查此Android documentation。还有描述And add these two files ...,他们使用layout.xml。我希望如果您需要使用更多别名,只需将其作为下一个 &lt;item ... 放入这些布局文件中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-10
  • 2016-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多