我有以下布局文件夹:layout、layout-large、layout-xlarge、layout-sw720dp
据我所知,对于 Android 3.2+,如果您至少有一个使用新大小量词的文件夹,那么它假定您在任何地方都使用这些新大小量词,并忽略任何其他使用旧量词的文件夹。
由于我有一个带有新量词的文件夹(即 layout-sw720dp),我希望 Nexus 7 从默认布局文件夹中选择布局。但它是从 layout-large 文件夹中选择布局。有人可以帮我理解为什么吗?
我有以下布局文件夹:layout、layout-large、layout-xlarge、layout-sw720dp
据我所知,对于 Android 3.2+,如果您至少有一个使用新大小量词的文件夹,那么它假定您在任何地方都使用这些新大小量词,并忽略任何其他使用旧量词的文件夹。
由于我有一个带有新量词的文件夹(即 layout-sw720dp),我希望 Nexus 7 从默认布局文件夹中选择布局。但它是从 layout-large 文件夹中选择布局。有人可以帮我理解为什么吗?
在这里,我找到了我的问题的解决方案:对于 Android 3.2+,如果您至少有一个使用新大小量词的文件夹,那么它假定您在任何地方都使用这些新大小量词,并忽略任何其他使用旧量词的文件夹。
但是 Android 确定您是否有一个带有新大小量词的文件夹的方式略有不同。它检查新的大小量词文件夹仅等于和低于它正在运行的设备的 sw。
例如,对于 Nexus 7,Android 会按 sw600dp、sw480dp、sw360dp、sw320dp 的顺序查找文件夹,最后如果这些文件夹都不存在,它会从布局文件夹中挑选。虽然存在 sw720dp,但并未考虑在内,因为它超出了 nexus 7 设备的范围。
只需将您在 layout-large 中的相同文件添加到layout-sw480dp
或从其中引用布局。
无论如何:由于大多数低于 3.0 的设备都是手机,它们很可能不是large
,而且xlarge
几乎没有运行 android 3.0 或 3.1 的设备,我强烈建议完全放弃layout-large
并layout-xlarge
坚持使用新文件夹。