Компоновка ограничений как избавиться от дополнительного пространства в textview, если представление многострочное

#android #android-layout #android-constraintlayout #constraint-layout-chains

Вопрос:

Я хотел бы разместить два изображения перед текстовым представлением. Когда текстовое представление состоит из одной строки, я получаю желаемый результат, см. Ниже

Однострочное текстовое представление

Если текстовое представление многострочное, то добавляется дополнительное пространство, и я не уверен, как это исправить. Вот изображение и код

Многострочное текстовое представление, которое необходимо исправить

 <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white">

    <androidx.appcompat.widget.LinearLayoutCompat
            android:id="@ id/title_holder"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/dp16"
            android:layout_marginTop="@dimen/dp18"
            android:layout_marginEnd="@dimen/dp16"
            android:orientation="horizontal"
            app:layout_constrainedWidth="true"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

        <ImageView
                android:id="@ id/som_icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginEnd="@dimen/dp8"
                android:src="@drawable/ic_info_icon"
                app:layout_constraintBottom_toBottomOf="@id/name_details"
                app:layout_constraintEnd_toStartOf="@id/name_details" />
        <ImageView
                android:id="@ id/hand_icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginEnd="@dimen/dp8"
                android:src="@drawable/ic_hand"
                app:layout_constraintBottom_toBottomOf="@id/name_details"
                app:layout_constraintEnd_toStartOf="@id/name_details" />

        <TextView
                android:id="@ id/name_details"
                style="@style/sharp_sans_semi_bold_20"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAlignment="center"
                tools:text="Mynameis RachelKaren " />
    </androidx.appcompat.widget.LinearLayoutCompat>
</androidx.constraintlayout.widget.ConstraintLayout>

 

Комментарии:

1. Когда я копирую и вставляю ваш код в пустой проект, он показывает желаемое поведение (за исключением того, что я заменил @dimen/dpX Xdp и удалил тег стиля текстового представления, так как у меня нет этих значений).

Ответ №1:

Я мог бы найти ответ , который мог бы точно удалить все отступы TextView , но, наконец, после просмотра официального документа, я нашел обходной путь для однострочных текстов.

java File это было бы:

 setIncludeFontPadding(false)
 

XML это было бы:

 android:includeFontPadding="false"
android:lineSpacingExtra="0dp"