我有一个带有长文本的文本视图,但其线间距在某些设备中的显示不正确。
?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值。
- 使用父级
LinearLayout
高度作为android:layout_height="wrap_content"
代替android:layout_height="150dp"
- 使用
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>