根据开关状态如何细分显示一个或两个按钮的布局?

时间:2019-05-10 23:41:32

标签: android android-layout kotlin view screen

我在Kotlin中开发了一个Android应用程序的屏幕)。我正在寻找一种好的做法,并根据开关的状态显示一个或两个按钮的示例。

如果禁用了开关,我想显示一个按钮,该按钮占据屏幕的整个宽度(与父项匹配)。 如果开关已激活,我希望在同一行上显示两个按钮,每个按钮的宽度为50%。

如何建立这样的结构?

1 个答案:

答案 0 :(得分:2)

您应分别对ConstraintLayoutmatch_constraint(0dp)进行如下操作。注意传播链样式的使用和约束。

通过在一个按钮上将可见性设置为GONE,您会看到另一个按钮将占据整个宽度。您也可以使用tools:visibility="gone"在布局编辑器中对其进行测试。

        <Button
            android:id="@+id/buttonLeft"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="8dp"
            android:text="@string/button_left_text"
            app:layout_constraintEnd_toStartOf="@+id/buttonRight"
            app:layout_constraintHorizontal_chainStyle="spread"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/topElement" />

        <Button
            android:id="@+id/buttonRight"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="8dp"
            android:text="@string/button_right_text"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/buttonLeft"
            app:layout_constraintTop_toBottomOf="@+id/topElement" />