Android XML динамически устанавливает высоту полей

1

В Android, мне нужно иметь размеры макета, зависящие от переменных в ViewModel. Например:

<TextView
                android:id="@+id/amount"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Example"
                android:layout_marginTop="@{viewModel.interfaceEnable ? 0dp : 10dp}"
                />

На основании значения в viewModel.interfaceEnable, оно будет 0dp или 10dp. Но ошибка, которую я получаю, заключается в следующем:

Syntax error: extraneous input 'p' expecting {'.', '::', '[', '+', '-', '*', '/', '%', '<<', '>>>', '>>', '<=', '>=', '>', '<', 'instanceof', '==', '!=', '&', '^', '|', '&&', '||', '?', ':', '??'}

Как я могу установить dp или любое значение через такую проверку?

Теги:
android-layout

1 ответ

0

Вы можете сделать что-то вроде этого:

android:layout_marginTop="@{viewModel.interfaceEnable ? @dimen/no_margin : @dimen/margin_normal}"
  • 0
    Можете ли вы уточнить?
  • 0
    Конечно. В вашем файле измерения.xml между тегом <resources> </ resources> добавьте: code <измерение name = "no_margin"> 0 </ dimension> <измерение имени = "margin_normal"> 10 </ dimension>
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню