Android TextView分离内部布局问题

Posted

技术标签:

【中文标题】Android TextView分离内部布局问题【英文标题】:Android TextView separation inside layout problem 【发布时间】:2020-11-11 12:06:41 【问题描述】:

我需要在线性布局中添加两个文本视图,问题是有时,根据字体大小,中间会出现一个奇怪的间距,我不希望它在那里。

这是一个截图: Text views in linear layout

你可以看到第一个和第二个textview完全对齐,但是第二个和第三个不是。

为什么会这样?

这是测试 xml:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="vertical"
        tools:layout_editor_absoluteX="1dp"
        tools:layout_editor_absoluteY="1dp">

        <TextView
            android:id="@+id/textView8"
            android:layout_
            android:layout_
            android:text="TextView"
            android:textSize="24sp" />

        <TextView
            android:id="@+id/textView9"
            android:layout_
            android:layout_
            android:text="TextView"
            android:textSize="24sp" />

        <TextView
            android:id="@+id/textView10"
            android:layout_
            android:layout_
            android:text="TextView"
            android:textSize="24sp" />

        <TextView
            android:id="@+id/textView11"
            android:layout_
            android:layout_
            android:text="TextView"
            android:textSize="24sp" />

        <TextView
            android:id="@+id/textView12"
            android:layout_
            android:layout_
            android:text="TextView"
            android:textSize="24sp" />

    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

编辑:建议的问题似乎是指相同的问题,但是建议的解决方案不能解决我的问题。

【问题讨论】:

这能回答你的问题吗? Android: TextView: Remove spacing and padding on top and bottom 【参考方案1】:

添加你的 textView 。它将删除额外的填充

android:includeFontPadding="false"

试试这个:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    tools:context=".MainActivity">
    

        <TextView
            android:id="@+id/textView8"
            android:layout_
            android:layout_
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            android:text="TextView"
            android:textSize="24sp" />

        <TextView
            android:id="@+id/textView9"
            android:layout_
            android:layout_
            android:text="TextView"
            app:layout_constraintTop_toBottomOf="@id/textView8"
            app:layout_constraintStart_toStartOf="parent"
            android:includeFontPadding="false"
            android:textSize="24sp" />

        <TextView
            android:id="@+id/textView10"
            android:layout_
            android:layout_
            app:layout_constraintTop_toBottomOf="@id/textView9"
            app:layout_constraintStart_toStartOf="parent"
            android:text="TextView"
            android:textSize="24sp" />

</androidx.constraintlayout.widget.ConstraintLayout>

【讨论】:

这修复了某些情况,但会生成其他情况。 会产生什么问题? 它们不是衬里,但更糟糕的是,它们的边界重叠imgur.com/a/wXdTvj4 我已经更新了答案并检查了似乎在缩放 300% 时也能正常工作 如果我将第一个的 textSize 更改为 26sp(例如)它会开始中断。

以上是关于Android TextView分离内部布局问题的主要内容,如果未能解决你的问题,请参考以下文章

TextView 链接到新的布局视图 Android

Android布局xml文件中TextView的首字母大写

Android 布局:在 TextView 和 android:drawableStart 上——设置图标的大小?

Android:带有自定义标题的圆角TextView XML布局

Android FindViewById 仅适用于子布局(列表视图行),不适用于父布局中的 TextView

3.Android 优化布局(解决TextView布局)