dimens.xml(w840dp)无法正常工作

时间:2017-02-28 22:13:32

标签: android android-layout

这似乎是一个错误,但也许我做了一些非常愚蠢的事情而且无法看到它。我有这些值文件:

enter image description here

整数值文件的行为符合预期。在默认的integers.xml中,我有:

<integer name="card_item_columns">2</integer>

和integers.xml(w840dp)我有:

<integer name="card_item_columns">3</integer>

但是当谈到尺寸文件时,只有sw600dp似乎可以做任何事情。对于dimens.xml(sw600dp),我有这个:

<dimen name="card_width">264dp</dimen>

对于dimens.xml(w840dp)我有这个:

<dimen name="card_width">400dp</dimen>

如果我在纵向中使用Nexus 7仿真器设备,它会显示2列。当我旋转它时,我看到3列符合预期。这证明它的宽度至少为840dp,因为integers.xml(w840dp)文件是唯一可以从中获取3列的地方。

但是,如果它是w840dp,为什么它不使用dimens.xml(w840dp)中的卡片宽度值?这不可能吗?可以&#34; w&#34;限定符不会覆盖&#34; sw&#34;预选赛?我认为应该。

我可以调整sw600dp文件中的值并反映更改,表明它已从布局文件中正确调用。

我没有到达什么基本概念?我觉得很难相信这里有一个错误。当然,如果有,其他人会注意到它。发现愚蠢的错误以获得一些积分。或者给我一个导致解决方案的线索。感谢。

1 个答案:

答案 0 :(得分:1)

Android网站上有关资源限定符优先级的文档非常全面: Providing Alternate Resources

所有其他条件相同,smallestWidth的优先级高于Available width

Configuration   | Qualifier value
smallestWidth   | sw<N>dp
Available width | w<N>dp