Android配置文件夹冲突?

时间:2014-04-25 21:36:52

标签: android android-xml android-4.4-kitkat

假设我有一个视图边距的值,这取决于屏幕大小。所以values-ldpi, mdpi, hdpi, large, xlarge。这很好用。现在假设我希望运行Android 4.4的设备略微改变这些值。如果我在dimens.xml文件夹中添加了一个稍微更改过的变量values-v19dimens.xml运行该应用的设备会考虑哪个?屏幕尺寸文件夹或android版本文件夹中的值?

请注意,我需要在Android 4.4上添加额外的边距,因为我有透明状态栏,因此布局需要位于操作栏和状态栏下。它可以以编程方式进行,但这需要大量工作。

非常感谢任何帮助。

更多细节: 我要求所有Android版本(包括4.4)的动作栏都是半透明的,状态栏也是4.4的半透明状态。导航栏也应该是透明/半透明的。

2 个答案:

答案 0 :(得分:1)

我认为您可以拥有values-ldpivalues-mdpi,....以及values-ldpi-v19values-mdpi-v19,....等文件夹。以下是有关configuration qualifier names

的详细信息的链接

答案 1 :(得分:0)

编辑:为了您的最终结果,您的解决方案应该是在fitsSystemWindows="true"上同时设置clipToPadding="false"ScrollView。这将确保设置足够的填充以将内容放入系统栏中,但允许内容在其下滚动。


检查表2 here,您可以看到匹配限定符的优先顺序。

在您的情况下,屏幕大小优先于Android版本,因此如果您有:

res/
    values-large/
        dimens.xml
            padding_value = 40dp
    values-v19/
        dimens.xml
            padding_value = 48dp

并尝试在大屏幕KitKat设备上使用该维度,40dp将是已解析的值。

编辑:根据您的需要,只需在布局的根目录上设置属性android:fitsSystemWindows="true",即可自动处理半透明状态栏和/或导航栏的内容。 :)