Behalten Sie den Rand bei, wenn die referenzierte Ansicht in ConstraintLayout verschwunden ist

Lesezeit: 3 Minuten

Ich habe 2 TextViews wie im XML unten. Wenn ich das verstecke textView2 Zur Laufzeit verliere ich den unteren Rand. Wie kann ich den unteren Rand dazwischen halten textView und Elternteil 16dp sein, wenn die textView2 ist weg.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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="wrap_content">

  <TextView
      android:id="@+id/textView"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_marginBottom="16dp"
      android:layout_marginEnd="8dp"
      android:layout_marginStart="8dp"
      android:layout_marginTop="8dp"
      android:text="abc"
      app:layout_constraintBottom_toTopOf="@+id/textView2"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toTopOf="parent"
      app:layout_constraintVertical_chainStyle="packed"
      />

  <TextView
      android:id="@+id/textView2"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_marginBottom="32dp"
      android:layout_marginEnd="8dp"
      android:layout_marginStart="8dp"
      android:text="xyz"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toBottomOf="@+id/textView"
      app:layout_constraintVertical_chainStyle="packed"/>
</android.support.constraint.ConstraintLayout>

Verwenden layout_goneMarginBottom:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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="wrap_content">

  <TextView
      android:id="@+id/textView"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_marginBottom="16dp"
      android:layout_marginEnd="8dp"
      android:layout_marginStart="8dp"
      android:layout_marginTop="8dp"
      android:text="abc"
      app:layout_goneMarginBottom="16dp"
      app:layout_constraintBottom_toTopOf="@+id/textView2"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toTopOf="parent"
      app:layout_constraintVertical_chainStyle="packed"
      />

  <TextView
      android:id="@+id/textView2"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_marginBottom="32dp"
      android:layout_marginEnd="8dp"
      android:layout_marginStart="8dp"
      android:text="xyz"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toBottomOf="@+id/textView"
      app:layout_constraintVertical_chainStyle="packed"/>
</android.support.constraint.ConstraintLayout>

  • Danke für das Beispiel! In meinem Fall war ich einstellen layout_goneMarginTop In der Ansicht versteckte ich mich, anstatt zu setzen layout_goneMarginBottom in der Ansicht, dass ich sichtbar bleiben und die Marge behalten wollte.

    – Lukas P.

    7. Juli 2020 um 14:35 Uhr

Das folgende Beispiel hilft, dieses Konzept zu verstehen

Geben Sie hier die Bildbeschreibung ein

Unten sind die Einschränkungen für text3

 app:layout_goneMarginStart="100dp"
 app:layout_constraintStart_toEndOf="@id/text2"
 android:layout_marginStart="10dp"

da wir die startbeschränkung mit text2 für text3 gesetzt hatten

  • wenn text2 sichtbar ist, android:layout_marginStart=”10dp” wird berücksichtigt
  • wenn text2 weg ist,app:layout_goneMarginStart=”100dp” wird als Text3 betrachtet, Startbeschränkung ist mit Text2. So, Wenn startConstraint nicht mehr vorhanden ist, wird GoneMarginStart berücksichtigt. Wenn endConstraint nicht mehr vorhanden ist, wird auch GoneMarginEnd berücksichtigt wie nachstehend

Geben Sie hier die Bildbeschreibung ein

1228050cookie-checkBehalten Sie den Rand bei, wenn die referenzierte Ansicht in ConstraintLayout verschwunden ist

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy