Если вы реализуете dataBinding , можно передать параметры в XML и заставить ваш макет работать в зависимости от этих параметров. Так, например, вы передаете логическое в xml и в ограничении элемента вы можете определить другое поведение, например:
<layout>
<data>
<variable name="example" type="Boolean"/>
</data>
<Constraint element
top_constraint="@{(example) ? "constraint_a" : "constraint_b"}
/>
</layout>
Поэтому вместо программного изменения всей раскладки вы устанавливаете ограничения в соответствии с одним логическим значением.
Здесь вы можете лучше понять привязку данных Android Связывание данных