0

我正在开发一个应用程序,它对各种屏幕具有不同的布局和值文件,然后我遇到了一个问题:smallestWidth 限定符只检查设备 minimumWidth 是否大于指示值。

当我有以下文件夹结构时,这很麻烦:

res/layout-port-mdpi
res/layout-sw720dp
res/layout-sw720dp-port
res/layout-sw720dp-land

在这种情况下,在mdpi sw720 port设备上,Android 将使用res/layout-port-mdpi而不是res/layout-sw720dp-port我真正想要使用的。res/layout-port-mdpi适用于较小的手机。

有没有办法指示最小宽度小于719dp,或者我是否需要res/layout-sw720dp-port-mdpi为所有其他 dpi 创建和?听起来很愚蠢。

谢谢你的友好回答。

4

1 回答 1

3

res/layout-port-mdpi 适用于较小的手机。

不它不是。它适用于具有中等密度屏幕的纵向设备。它对尺寸没有任何规定。

在这种情况下,在 mdpi sw720 端口设备上,Android 将使用 res/layout-port-mdpi 而不是我真正想要使用的 res/layout-sw720dp-port。

No.-sw720dp是比 is 更强的标准-mdpi因此应该使用纵向-sw720dp 纵向的设备。-mdpi res/layout-sw720dp-port

有没有办法表示 minimumWidth LESS 比 719dp

并不真地。-swNNNdp如果设备的值低于您使用的任何此类资源集,Android 将使用没有任何值的资源集。

我是否需要为所有其他 dpi 创建 res/layout-sw720dp-port-mdpi?

不。

例如,如果您的目标是让一些布局专门用于-sw720dp设备,而其他布局用于较小的设备,每种尺寸都有一些不同的横向布局,那么您的目录将是:

  • res/layout-sw720dp-land/对于-sw720dp横向设备
  • res/layout-sw720dp/适用-sw720dp于非横向设备
  • res/layout-land/适用于比-sw720dp横向放置的设备更小
  • res/layout/对于小于非-sw720dp横向的设备

拥有 中的每个布局之一res/layout/,并仅在需要时使用更多约束覆盖资源集中的这些布局。

于 2012-04-22T12:35:36.943 回答