In an xml document, is there any way to load a value from dimens.xml and make it negative? For example, if I have:
<dimen name="x">20dp</dimen>
Is it possible to do something like this:
android:layout_marginRight="-@dimen/x"
So I in de facto get:
android:layout_marginRight="-20dp"
That is not possible in standard layout XML. You could retrieve the dimension value in Java, multiply it by -1
, and apply it in Java.
You could even do that in the form of a custom attribute (e.g., yourapp:layout_negativeMarginRight
) in your own custom subclass of ViewGroup
, if you really wanted. This would seem to be overkill.
UPDATE: This is now somewhat possible via data binding expressions:
android:padding="@{0.75f * @dimen/icon}"
It does not work for margins or any other layout attributes due to the lack of binding adapters which you can implement. See this bug.