ConstraintLayout не показывает дочерние представления - PullRequest
0 голосов
/ 08 мая 2018

Я скрываю и показываю текстовое представление программно. Компоновка родительского ограничения установила высоту 'wrap_content'.

Но проблема здесь в том, что если текстовое представление изначально скрыто, даже если я установил видимость текстового представления на VISIBLE, ConstraintLayout titleLayout будет свернут и не отображает дочернее текстовое представление.

Установка высоты ConstraintLayout равной wrap_content важна, чтобы макет мог увеличиваться / уменьшаться в соответствии с содержимым текстового представления.

 <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>

1 Ответ

0 голосов
/ 06 сентября 2018

Если вы изменяете видимость дочерних элементов внутри ConstraintLayout, вы должны сделать это с помощью ConstraintSet:

ConstraintSet constraintSet = new ConstraintSet();
constraintSet.clone(constraintLayout);
constraintSet.setVisibility(childView.getId(), View.VISIBLE);
constraintSet.applyTo(constraintLayout);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...