Хотите изменить положение кнопки при изменении условия в Constraintlayout - PullRequest
0 голосов
/ 27 апреля 2020

Вот мой макет

enter image description here

Я знаю, как спроектировать его, используя макет ограничения, а также добавив ограничение во время выполнения.

На изображении ниже я хочу изменить выбранный значок во время выполнения, значит, если на переключателе оба левых значка должны находиться справа, а оба правых значка должны быть слева.

Если я выключу, тогда должен произойти обратный случай.

Теперь я знаю, что мы можем сделать это, используя ограничение времени выполнения, но я только хочу знать, возможно ли это сделать в файле макета (xml) напрямую?

1 Ответ

1 голос
/ 27 апреля 2020

Если вы реализуете dataBinding , можно передать параметры в XML и заставить ваш макет работать в зависимости от этих параметров. Так, например, вы передаете логическое в xml и в ограничении элемента вы можете определить другое поведение, например:

<layout>
    <data>
      <variable name="example" type="Boolean"/>
    </data>

    <Constraint element
         top_constraint="@{(example) ? "constraint_a" : "constraint_b"}
    />
</layout>

Поэтому вместо программного изменения всей раскладки вы устанавливаете ограничения в соответствии с одним логическим значением.

Здесь вы можете лучше понять привязку данных Android Связывание данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...