He uno TextView
alineado a la izquierda y centrado verticalmente. Dos grupos de ImageView
y TextView
son a la vez alineados a la derecha, con dos configuraciones de diseño, una con imagen de la derecha, otro con la imagen de la izquierda.
El texto hola mundo puede ser muy largo. Quiero que se expanda para llenar todo el ancho sin cubrir el texto a la izquierda.
He añadido app:layout_constraintStart_toEndOf="@id/text1"
a la restricción del grupo de la derecha (imagen + texto) no se solapan con el texto de la izquierda. Sin embargo, no se comporta como lo esperaba.
Cómo hacer que no se solapan utilizando sólo ConstraintLayout?
Text1
quedarán cubiertas si el texto a la derecha es demasiado largo, que no se espera. Se observó que la imagen de la segunda fila se ha ido también.
código:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Text1" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/row1_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toStartOf="@id/row1_image"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toEndOf="@id/text1"
app:layout_constraintTop_toTopOf="parent"
tools:text="Hello World" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/row1_image"
android:layout_width="22dp"
android:layout_height="22dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/row1_text"
app:layout_constraintTop_toTopOf="parent"
tools:src="@drawable/ic_confirm" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/horizontal_barrier"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="row1_text,row1_image" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/row2_image"
android:layout_width="22dp"
android:layout_height="22dp"
app:layout_constraintEnd_toStartOf="@id/row2_text"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toEndOf="@id/text1"
app:layout_constraintTop_toTopOf="@id/horizontal_barrier"
tools:src="@drawable/ic_confirm" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/row2_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/row2_image"
app:layout_constraintTop_toTopOf="@id/horizontal_barrier"
tools:text="Hello World" />
</androidx.constraintlayout.widget.ConstraintLayout>
espera que sea, como a continuación si el texto a la derecha es demasiado largo. Puede alcanzado por LinearLayout y RelativeLayout
Amablemente comprobar la versión Constraintlayout. uso app:layout_constrainedWidth="true"
conandroid:layout_width="wrap_content"