从dimens.xml加载值并使其为负数

时间:2014-06-16 13:15:28

标签: android xml

在xml文档中,有没有办法从dimens.xml加载一个值并使其为负数? 例如,如果我有:

<dimen name="x">20dp</dimen>

是否可以做这样的事情:

android:layout_marginRight="-@dimen/x"

所以我事实上得到了:

android:layout_marginRight="-20dp"

1 个答案:

答案 0 :(得分:14)

这在标准布局XML中是不可能的。您可以在Java中检索维度值,将其乘以-1,并将其应用于Java。

如果您真的想要,您甚至可以在自己的自定义子类yourapp:layout_negativeMarginRight中以自定义属性(例如ViewGroup)的形式执行此操作。这似乎有点矫枉过正。


更新:现在通过data binding expressions可以实现这一点:

android:padding="@{0.75f * @dimen/icon}"

由于缺少可以实现的绑定适配器,它不适用于边距或任何其他布局属性。请参阅this bug