首页 > 解决方案 > 想要在 Constraintlayout 中更改条件时更改按钮位置

问题描述

这是我的布局

在此处输入图像描述

我知道如何使用约束布局来设计它并在运行时添加约束。

在下图中,我想在运行时更改选定的图标意味着如果我打开开关,两个左图标都应该在右侧,两个右图标都应该在左边。

如果我关闭,那么应该会发生相反的情况。

现在,我知道我们可以使用运行时约束来做到这一点,但我只想知道是否可以直接在 layout(xml) 文件中做到这一点?

标签: androidandroid-constraintlayout

解决方案


如果您实现dataBinding,则可以将参数传递给 XML,并使您的布局根据这些参数进行行为。因此,例如,您将布尔值传递给 xml,并且在元素约束上,您可以定义不同的行为,例如:

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

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

因此,您无需以编程方式更改所有布局,而是根据单个布尔值设置约束。

您可以在此处更好地了解 dataBinding Android Data Binding


推荐阅读