Search code examples
androidconstraintsandroid-constraintlayout

How to align TextView in two lines between images in ConstraintLayout


I'm doing some design in constraintlayout that is give me a pain. I have an image at the left, two text in a vertical orientation that is align at the end of this image and I have other constraints at right with an image and text.

If I type a long text in the two text that i have in a vertical orientation the text cover the constraint that I have at right of my view. That I want to do is if this text is long can't cover this constraint, have to expand to other line.

enter image description here

This is my code:

<androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/image_slider"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_margin="8dp"
                android:scaleType="centerInside"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                tools:src="@drawable/ic_error" />

            <TextView
                android:id="@+id/txt_title_animation_native_cart"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:textColor="@color/app_primary_medium"
                android:textSize="15sp"
                app:layout_constraintStart_toEndOf="@+id/image_slider"
                app:layout_constraintTop_toTopOf="@+id/image_slider"
                tools:text="Title" />

            <TextView
                android:id="@+id/txt_subtitle_animation_native_cart"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="4dp"
                android:maxLines="2"
                android:textColor="@color/app_grey_medium"
                android:textSize="12sp"
                app:layout_constraintStart_toStartOf="@+id/txt_title_animation_native_cart"
                app:layout_constraintTop_toBottomOf="@+id/txt_title_animation_native_cart"
                tools:text="Subtitle asfda sdfowei oiwue rpoweiru  oiwue twoeiu t oiweu t" />

            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/constraint_undo_button"
                android:layout_width="31dp"
                android:layout_height="match_parent"
                android:layout_marginEnd="24dp"
                android:orientation="vertical"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent">

                <androidx.appcompat.widget.AppCompatImageView
                    android:id="@+id/image_undo"
                    android:layout_width="14dp"
                    android:layout_height="16dp"
                    android:src="@drawable/icon_loop"
                    android:visibility="gone"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    tools:src="@drawable/icon_loop"
                    tools:visibility="visible" />

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:gravity="center"
                    android:text="Ree"
                    android:textColor="@color/app_primary_medium"
                    android:textSize="12sp"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/image_undo" />

            </androidx.constraintlayout.widget.ConstraintLayout>
        </androidx.constraintlayout.widget.ConstraintLayout>

Solution

  • Just do this:

    <TextView
                    android:id="@+id/txt_subtitle_animation_native_cart"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:layout_marginEnd="4dp"
                    android:maxLines="2"
                    android:textColor="@color/app_grey_medium"
                    android:textSize="12sp"
                    app:layout_constraintStart_toStartOf="@+id/txt_title_animation_native_cart"
                    app:layout_constraintTop_toBottomOf="@+id/txt_title_animation_native_cart"
    app:layout_constraintEnd_toStartOf="@+id/constraint_undo_button"
                    tools:text="Subtitle asfda sdfowei oiwue rpoweiru  oiwue twoeiu t oiweu t" />