ConstraintLayout不显示子视图

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

我正在隐藏并以编程方式显示textview。父约束布局已设置高度'wrap_content'。

但这里的问题是如果最初隐藏textview,即使我将textview可见性设置为VISIBLE,ConstraintLayout titleLayout仍然会折叠并且不显示子textview。

将ConstraintLayout的高度设置为wrap_content非常重要,因此布局可以根据textview内容进行扩展/缩小。

 <android.support.constraint.ConstraintLayout
            android:paddingTop="10dp"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

 <android.support.constraint.ConstraintLayout
            android:id="@+id/descriLayout"
            android:layout_width="match_parent"
            app:layout_constraintTop_toBottomOf="@id/titleLayout"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            android:layout_marginTop="5dp"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/box_description"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginRight="8dp"
                android:layout_marginStart="8dp"
                android:text="TextView"
                android:textSize="12sp"
                android:maxLines="5"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"/>
        </android.support.constraint.ConstraintLayout>
   </android.support.constraint.ConstraintLayout>
android android-layout android-constraintlayout
1个回答
0
投票

如果要更改ConstraintLayout中子项的可见性,则必须通过ConstraintSet执行此操作:

ConstraintSet constraintSet = new ConstraintSet();
constraintSet.clone(constraintLayout);
constraintSet.setVisibility(childView.getId(), View.VISIBLE);
constraintSet.applyTo(constraintLayout);
© www.soinside.com 2019 - 2024. All rights reserved.