【发布时间】:2022-01-04 07:42:57
【问题描述】:
我有一个带有 3 个按钮的约束布局,如下所示。
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/img_subscribe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp20"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:visibility="gone"
/>
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/img_start_over"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp45"
app:layout_constraintStart_toEndOf="@id/img_subscribe"
app:layout_constraintTop_toTopOf="parent"
android:visibility="gone"
/>
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/img_trailer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp45"
app:layout_goneMarginLeft="@dimen/dp20"
app:layout_constraintStart_toEndOf="@id/img_start_over"
app:layout_constraintTop_toTopOf="parent"
android:visibility="visible"
/>
我只想在前两个按钮不可见时为第三个按钮留出余量。但是在这个当前代码中,如果当前一个按钮不可见时它正在占用边距。当且仅当前两个按钮不可见时,如何使第三个按钮占据已消失的边距。
任何建议表示赞赏。
【问题讨论】:
-
如果你问我,这听起来像是
LinearLayout的一个很好的用例 -
只需要在约束布局中实现。那可能吗? @IvanWooll
-
您可以将 3 个按钮包装在一个 ConstraintLayout 中吗?
-
没有明确的方法使第三个小部件的边距取决于其他两个小部件的可见性,只需设置一个已消失的边距。当前两个小部件的可见性“消失”时,您可以以编程方式更改第三个小部件的边距。如果您必须使用已消失的边距,则有一种复杂的方法可以使用屏障和零宽度/高度小部件以及一些编码来实现,但最好只是根据代码中的需要更改边距。
标签: android android-layout android-constraintlayout layoutmargins