假设我有一个视图边距的值,这取决于屏幕大小。所以values-ldpi, mdpi, hdpi, large, xlarge
。这很好用。现在假设我希望运行Android 4.4的设备略微改变这些值。如果我在dimens.xml
文件夹中添加了一个稍微更改过的变量values-v19
,dimens.xml
运行该应用的设备会考虑哪个?屏幕尺寸文件夹或android版本文件夹中的值?
请注意,我需要在Android 4.4上添加额外的边距,因为我有透明状态栏,因此布局需要位于操作栏和状态栏下。它可以以编程方式进行,但这需要大量工作。
非常感谢任何帮助。
更多细节: 我要求所有Android版本(包括4.4)的动作栏都是半透明的,状态栏也是4.4的半透明状态。导航栏也应该是透明/半透明的。
答案 0 :(得分:1)
我认为您可以拥有values-ldpi
,values-mdpi
,....以及values-ldpi-v19
,values-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"
,即可自动处理半透明状态栏和/或导航栏的内容。 :)