繁体   English   中英

删除 TextView 中的顶部和底部间距

[英]Remove top and bottom spacing in TextView

如何删除文本顶部和底部的间距? 我想让两个文本相互接触,或者至少减少文本之间的间距。

我看过其他推荐设置android:includeFontPadding="false"的帖子,但这不起作用。

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="96sp"
    android:text="TEXT1"
    android:background="@color/primaryColor"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="96sp"
    android:text="TEXT2"
    android:background="@color/secondaryColor"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@id/textView" />

样本

问题是这不仅仅是空白——它是字体的上升和下降,像g的下部这样的地方。 TextView必须有那个空间,因为它不知道你不会使用它。 includeFontPadding会影响上升顶部的一些重音,因此您可以删除一点空间,但它的 rest 是必需的。

没有得到没有上升和下降的字体,老实说,我认为你能做的最好的事情是将下部TextView顶部限制到上部的顶部,并添加一个marginTop值,将它向下移动到你想要的位置。 使用sp值而不是dp以便它保持相对于用户的字体大小偏好 - 如果您更改字体,则需要对其进行调整。 并且背景必须是分开的,在文本视图后面,如果你使用那些

如果您不惜一切代价绝对想要这个,那么您可以执行以下操作,我尚未检查它是否适用于不同的屏幕尺寸。 但是您可以将它们的顶部都附加到同一个视图,可以是父视图,然后使背景透明,如果您选择不同的颜色,那么这将不起作用,保持文本全部大写,这样常规字母就不能再高 go或更低。 根据您将在 dp 中给出的文本大小保持边距。 这可能是“我以任何方式想要这个”的方法,而不是可接受的方法。

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="95dp"
        android:text="TEXT1"
        
        android:background="@android:color/transparent"
       
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        android:layout_marginTop="0dp"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:text="TEXT2"
        android:textSize="95dp"
        android:layout_marginTop="75dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

输出看起来像这样

你可以用Space视图做一些聪明的事情来完成这项工作:

<TextView android:id="@+id/textView1"
    [other TextView stuff]
    app:layout_constraintTop_toTopOf="parent"/>
<Space android:id="@+id/space"
    android:layout_marginBottom="20dp"
    app:layout_constraintBottom_toBottomOf="@id/textView1"/>
<TextView android:id="@+id/textView2"
    [other TextView stuff]
    app:layout_constraintTop_toBottomOf="@id/space"/>

然后在Space视图中调整 margin 参数,直到文本出现在您想要的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM