#android #xml
#Android #xml
Вопрос:
Есть ли какой-либо способ загрузить значение из XML-документа dimens.xml и сделать его отрицательным? Например, если у меня есть:
<dimen name="x">20dp</dimen>
Возможно ли сделать что-то подобное:
android:layout_marginRight="-@dimen/x"
Так что я де-факто получаю:
android:layout_marginRight="-20dp"
Ответ №1:
Это невозможно в стандартной компоновке XML. Вы можете получить значение измерения в Java, умножить его на -1
и применить его в Java.
Вы могли бы даже сделать это в виде пользовательского атрибута (например, yourapp:layout_negativeMarginRight
) в своем собственном пользовательском подклассе ViewGroup
, если бы вы действительно хотели. Казалось бы, это излишне.
ОБНОВЛЕНИЕ: теперь это в некоторой степени возможно с помощью выражений привязки данных:
android:padding="@{0.75f * @dimen/icon}"
Он не работает для полей или любых других атрибутов макета из-за отсутствия адаптеров привязки, которые вы можете реализовать. Посмотрите на эту ошибку.