如何用view.GONE处理ConstraintLayout的水平& 垂直。

问题描述 投票:0回答:1

已经在约束中使用垂直和水平链的手柄可见性消失。但它们并不能满足我想要做的事情。我需要设置一个像这样的视图。

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>
java android visibility android-constraintlayout
1个回答
0
投票

这不适用于 ConstraintLayout 恐怕,你应该用 RecyclerView 每个视图都在一个单独的项目中,而使用 GridLayoutManager 作为它的2个跨度的布局管理器。

当建立列表时,可以通过它的适配器控制项目的数量,使用 notifyItemRemoved(1)notifyItemInserted(1) 用动画来顺利地添加项目。或者您可以轻松调用 notifyDataSetChanged() 在您更改数据集后,进行完整但不执行的适配器更新。

© www.soinside.com 2019 - 2024. All rights reserved.