XML文件中的TextView错误



我有一个带有长文本的文本视图,但其线间距在某些设备中的显示不正确。

 ?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:background="#FFFFFF"
    android:orientation="horizontal">
    <ImageView
        android:id="@+id/bits_image"
        android:layout_width="wrap_content"
        android:layout_height="64dp"
        android:layout_marginLeft="24dp"
        android:layout_marginStart="24dp"
        android:layout_marginTop="24dp"
        android:src="@mipmap/yellowfacesnooze"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="8dp"
            android:layout_marginTop="24dp"
            android:text="Text"
            android:includeFontPadding="false"
            android:textAppearance="@style/TextAppearance.FontPathBold"
            android:textSize="24sp"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="24dp"
            android:includeFontPadding="false"
            android:text="Praesent pretium nulla sit amet mollis consectetur. Aenean sed felis in ante dictum facilisis. Etiam suscipit lorem sed nisl interdum, ac vulputate tortor tempor."
            android:textSize="18sp"/>
    </LinearLayout>
</LinearLayout>

在第一个图像中,显示器看起来不错,而第二个图像不正确。

布局的图像

手机的图像

您的问题似乎与您使用的字体有关,以及您使用的布局高度,我将XML更新为最佳实践:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:background="#FFFFFF"
    android:orientation="vertical">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="8dp"
            android:layout_marginTop="24dp"
            android:text="Text"
            android:includeFontPadding="false"
            android:textAppearance="@style/TextAppearance.FontPathBold"
            android:textSize="24sp"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="24dp"
            android:includeFontPadding="false"
            android:text="Praesent pretium nulla sit amet mollis consectetur. Aenean sed felis in ante dictum facilisis. Etiam suscipit lorem sed nisl interdum, ac vulputate tortor tempor."
            android:textSize="18sp"/>
</LinearLayout>

我所做的是,我将外部布局高度作为包装内容制作并更新了其方向,因此删除了内部线性布局,因为它没有用,最后添加了 include froftpadding 属性和false值。

  1. 使用父级LinearLayout高度作为android:layout_height="wrap_content"代替android:layout_height="150dp"
  2. 使用android:lineSpacingMultiplier="1.1"在行之间提供额外的空间(if needs)

尝试以下方法:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:background="#FFFFFF"
    android:orientation="horizontal">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="8dp"
            android:layout_marginTop="24dp"
            android:text="Text"
            android:textAppearance="@style/TextAppearance.FontPathBold"
            android:textSize="24sp"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="24dp"
            android:lineSpacingMultiplier="1.1"
            android:text="Praesent pretium nulla sit amet mollis consectetur. Aenean sed felis in ante dictum facilisis. Etiam suscipit lorem sed nisl interdum, ac vulputate tortor tempor."
            android:textSize="18sp"/>
    </LinearLayout>
</LinearLayout>

最新更新