【发布时间】:2020-09-17 08:00:45
【问题描述】:
我想在约束布局中实现如下图所示的东西
要求:
- 两个按钮的宽度应该相等
- 按钮之间应该有一个边距
-
BTN 1可以是VISIBLE或GONE - 如果
BTN 1设置为 GONE ,BTN 2应保持宽度并移至中心
我尝试使用链,但是当 BTN 1 得到 GONE BTN 2 时得到全宽。然后我将layout_constraintWidth_percent="0.5" 设置为两个按钮,但在这种情况下,我无法在两个按钮之间设置边距。当设置 margin 时,按钮移出屏幕。
有什么想法可以解决这个问题吗?
这是我的代码
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/btn_negative"
style="?attr/borderlessButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24sdp"
android:background="@drawable/btn_solid_white_round"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:padding="@dimen/_8sdp"
android:textColor="@color/darkTextColor"
android:textSize="@dimen/_11ssp"
app:fontFamily="@font/iran_yekan"
app:layout_constraintEnd_toStartOf="@+id/btn_positive"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txt_message"
app:layout_constraintWidth_percent="0.5"
tools:text="BTN 2" />
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/btn_positive"
style="?attr/borderlessButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/_12sdp"
android:background="@drawable/btn_solid_accent_round"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:padding="@dimen/_8sdp"
android:textColor="@color/white"
android:textSize="@dimen/_11ssp"
app:fontFamily="@font/iran_yekan"
app:layout_constraintBottom_toBottomOf="@+id/btn_negative"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/btn_negative"
app:layout_constraintTop_toTopOf="@+id/btn_negative"
app:layout_constraintWidth_percent="0.5"
tools:text="BTN 1" />
【问题讨论】:
-
如果您找不到更简单的方法,您可以使用 MotionLayout 来实现。那也会给你一个漂亮的动画。
标签: android android-layout android-constraintlayout