Я хочу установить поля на основе размеров, которые я создал в dimens.xml. Размеры, которые он сам прекрасно работает, его просто привязка данных не может найти его в следующем примере:Android databinding - Как получить размеры от dimens.xml
<TextView
android:id="@+id/title_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/disableButton"
*************
android:layout_marginBottom="@{@bool/showAds ?
@dimen/frontpage_margin_ads: @dimen/frontpage_margin_noads}"
*************
android:gravity="center_horizontal"
android:text="@string/app_name"
android:textColor="@android:color/holo_orange_dark"
android:contentDescription="@string/app_name"
android:textSize="64sp"
android:textStyle="bold" />
он нашел его, но он говорит, что marginbottom не может принимать тип float. Как я могу это исправить? Я попробовал кастинг как dimens, так и int, но потом он жалуется, что его нельзя отличить от int.
Мой файл Размер XML выглядит следующим образом:
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="bigText">44sp</dimen>
<dimen name="littleText">44sp</dimen>
<dimen name="mediumText">40sp</dimen>
<dimen name="smallText">24sp</dimen>
<dimen name="fab_margin">16dp</dimen>
<dimen name="frontpage_margin_noads">0dp</dimen>
<dimen name="frontpage_margin_ads">13dp</dimen>
</resources>
Где я должен писать этот код? Будут ли все макеты, которые я укажу marginBottom, использовать этот метод или только привязывающие данные или только этот конкретный макет? –
Вы можете добавить это в любой (общедоступный) класс в проект, у которого включена привязка данных. Он будет использоваться для всех атрибутов полей привязки данных. –
Проблема проста: поле не является свойством представления, а экземпляром макета представления. Вы можете делать то, что вы пробовали, с другими свойствами представления, например дополнением, но есть веская причина, почему атрибуты поля имеют префикс 'layout_'. – racs