如何让Android仅在旧设备上使用合格的资源文件?

时间:2013-05-08 18:50:20

标签: android right-to-left

我为阿拉伯用户提供了一个单独的布局文件,我只想用于不支持Android本机RTL镜像的设备(在API级别17中引入)。如果他们使用的是API为17或更高版本的设备,我希望使用默认的XML文件。

我将如何做到这一点?我知道:

如果我将home.xml放入res/layout/,则会将其用作默认布局文件。

如果我在home.xml中放入另一个res/layout-ar/,那么它将用于阿拉伯语发音者

如果我在home.xml中放入另一个res/layout-ar-v17/,那么它将用于v17或更高版本的阿拉伯语。*

*问题是,我不想拥有另一个home.xml,我只是希望系统使用默认值并镜像它。

2 个答案:

答案 0 :(得分:6)

您可以使用Layout Aliases。你最终会得到两个布局文件,我们称之为home_one.xml和home_two.xml。然后在res/values/layout.xmlres/values-ar-v17/layout.xml中你会有

<item name="home" type="layout">@layout/home_one</item>

并且在res/values-ar/layout.xml中你需要

<item name="home" type="layout">@layout/home_two</item>

答案 1 :(得分:1)

我建议创建两个可重复使用的布局(如here所述),一个用于默认布局,另一个用于API级别为17+的阿拉伯语。然后,您可以在适当的配置特定文件夹中定义各种home.xml文件,以便它们<include>(或<merge>)适当的布局。这样,您只需复制一个<include>标记而不是整个布局。