ConstraintLayout обрезает текст в текстовом представлении

У меня есть ConstraintLayout с парой просмотров, и по какой-то причине мой textview обрезается ближе к концу предложения. textview ограничено слева и сверху. Это tv_product_description textview.

<android.support.constraint.ConstraintLayout
    android:id="@+id/ll_product_holder"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    android:layout_marginTop="16dp"
    android:background="@drawable/drawable_border"
    android:orientation="vertical">

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/iv_product_image"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="9dp"
        android:layout_marginStart="9dp"
        android:layout_marginTop="13dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/price_holder"
        fresco:actualImageScaleType="centerCrop"
        fresco:placeholderImage="@drawable/placeholder2"/>

    <TextView
        android:id="@+id/tv_product_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="9dp"
        android:layout_marginStart="9dp"
        android:layout_marginTop="13dp"
        android:text="@{historyItem.productId}"
        app:layout_constraintLeft_toRightOf="@+id/iv_product_image"
        app:layout_constraintTop_toBottomOf="@+id/price_holder"/>

    <TextView
        android:id="@+id/tv_product_description"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="9dp"
        android:layout_marginStart="9dp"
        android:ellipsize="end"
        android:maxLines="2"
        android:text="@{historyItem.productDescription}"
        app:layout_constraintLeft_toRightOf="@+id/iv_product_image"
        app:layout_constraintTop_toBottomOf="@+id/tv_product_id"/>

</android.support.constraint.ConstraintLayout>

Здесь вы можете увидеть обрезанное текстовое представление.


person Esteban    schedule 02.05.2017    source источник


Ответы (3)


Пожалуйста, добавьте правильное ограничение, например

app:layout_constraintRight_toRightOf="parent"

и, пожалуйста, установите ширину 0dp, например

android:layout_width="0dp"

Вывод

введите описание изображения здесь

person Dharmbir Singh    schedule 02.05.2017
comment
Я пытался добавить constraintRight, но textview все испортилось, как будто левым ограничением пренебрегают, и оно все еще обрезано. - person Esteban; 02.05.2017
comment
Я уже тестировал на своей машине, но дело в том, что вы уже дали некоторые ограничения, которые не принадлежат его родительскому макету. - person Dharmbir Singh; 02.05.2017
comment
Пожалуйста, попробуйте добавить android:layout_width="0dp" Надеюсь, это сработает для вас. - person Dharmbir Singh; 02.05.2017
comment
приведенный выше пример работает без каких-либо проблем .. большое спасибо - person Muhamed El-Banna; 11.02.2020

Для меня это сработало, имея следующее

app:layout_constraintEnd_toEndOf="parent"

и ширина как

android:layout_width="0dp"
person Nixon Kosgei    schedule 11.10.2019

Лучшие и самые актуальные ответы на эту тему можно найти здесь:

Представление выталкивается за пределы своих ограничений в ConstraintLayout

представление Wrap_content внутри ConstraintLayout выходит за пределы экрана

Они описывают, как использовать свойство app:layout_constrainedWidth, которое было представлено в ConstraintLayout 1.1.

person Lucas    schedule 07.08.2018