layout-sw801dp 和 layout-v21 有什么区别?
What is the difference between layout-sw801dp and layout-v21?
当我有一个 900dp 的设备并且当我 运行 在 api 级别 21+ 当布局文件存在于所有这些文件夹下时,
res/layout/
res/layout-sw801dp/
res/layout-v21/
哪一个会被选中,为什么?
查看 Android 应用程序资源概述,特别是 providing alternate resources。 Table 2 描述了可用的资源限定符。那里说
Table 2 lists the valid configuration qualifiers, in order of precedence...
因此,查看该列表,您在以下目录中定义了资源:
res/layout/: 默认值
res/layout-sw801dp/ : 最小宽度
res/layout-v21/ : 版本 21 及以上
优先顺序如下,第一个匹配停止搜索资源。
res/layout-sw801dp/
res/layout-v21/
res/layout/
由于您的屏幕宽度为 900dp,资源搜索将停止在 res/layout-sw801dp,因为 900dp >= 801dp。如果屏幕宽度为 700dp(<801dp)且 API 级别为 21+,则搜索将停止在 res/layout-v21/。如果版本是 API 18,屏幕宽度为 700dp,则将使用 res/layout/。
当我有一个 900dp 的设备并且当我 运行 在 api 级别 21+ 当布局文件存在于所有这些文件夹下时,
res/layout/
res/layout-sw801dp/
res/layout-v21/
哪一个会被选中,为什么?
查看 Android 应用程序资源概述,特别是 providing alternate resources。 Table 2 描述了可用的资源限定符。那里说
Table 2 lists the valid configuration qualifiers, in order of precedence...
因此,查看该列表,您在以下目录中定义了资源:
res/layout/: 默认值
res/layout-sw801dp/ : 最小宽度
res/layout-v21/ : 版本 21 及以上
优先顺序如下,第一个匹配停止搜索资源。
res/layout-sw801dp/
res/layout-v21/
res/layout/
由于您的屏幕宽度为 900dp,资源搜索将停止在 res/layout-sw801dp,因为 900dp >= 801dp。如果屏幕宽度为 700dp(<801dp)且 API 级别为 21+,则搜索将停止在 res/layout-v21/。如果版本是 API 18,屏幕宽度为 700dp,则将使用 res/layout/。