已经在约束中使用垂直和水平链的手柄可见性消失。但它们并不能满足我想要做的事情。我需要设置一个像这样的视图。
1 2
3 4
5 6
例如,当我把2号设置为可见性消失时,3号就会取代他的位置。
我试图做这样的事情,但我还差得远。
`<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/paymentCardQR"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/green"
app:layout_constraintBottom_toTopOf="@+id/paymentCardEfectivo"
app:layout_constraintEnd_toStartOf="@+id/paymentCardTarjeta"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed">
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/paymentCardEfectivo"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/red"
app:layout_constraintBottom_toTopOf="@+id/paymentCardCtaCliente"
app:layout_constraintEnd_toStartOf="@+id/paymentCardVoucher"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/paymentCardQR">
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/paymentCardCtaCliente"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/green"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/paymentCardOnline"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/paymentCardEfectivo">
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/paymentCardTarjeta"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/gray"
app:layout_constraintBottom_toTopOf="@+id/paymentCardVoucher"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/paymentCardQR"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed">
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/paymentCardVoucher"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/blue"
app:layout_constraintBottom_toTopOf="@+id/paymentCardOnline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/paymentCardEfectivo"
app:layout_constraintTop_toBottomOf="@+id/paymentCardTarjeta">
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/paymentCardOnline"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/paymentCardCtaCliente"
app:layout_constraintTop_toBottomOf="@+id/paymentCardVoucher">
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
这不适用于 ConstraintLayout
恐怕,你应该用 RecyclerView
每个视图都在一个单独的项目中,而使用 GridLayoutManager
作为它的2个跨度的布局管理器。
当建立列表时,可以通过它的适配器控制项目的数量,使用 notifyItemRemoved(1)
撤 notifyItemInserted(1)
用动画来顺利地添加项目。或者您可以轻松调用 notifyDataSetChanged()
在您更改数据集后,进行完整但不执行的适配器更新。