带有两个 TextView 和省略号的布局

Posted

技术标签:

【中文标题】带有两个 TextView 和省略号的布局【英文标题】:Layout with two TextViews and ellipsis 【发布时间】:2020-10-21 06:50:58 【问题描述】:

我想在一行中创建一个包含两个 TextView 的布局。如果文本太长,我希望第一个 TextView 被省略。如果它们都可以放入行中,我希望它们表现得好像它们的宽度为 wrap_content。我该怎么做?

这是我想要得到的结果:

[短文本1][文本2]

[非常长的 text1 必须被省略...][text2]

【问题讨论】:

【参考方案1】:

创建两个视图的水平链,将最大线设置为左视图之一并将左视图的约束宽度设置为true 以使其保持在边界内:

<androidx.constraintlayout.widget.ConstraintLayout 
    android:layout_
    android:layout_
    android:layout_margin="16dp"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView2"
        android:layout_
        android:layout_
        android:ellipsize="end"
        android:maxLines="1"
        app:layout_constrainedWidth="true"
        android:text="Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! "
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/textView"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintHorizontal_chainStyle="packed"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView"
        android:layout_
        android:layout_
        android:text="TextView"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/textView2"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

【讨论】:

【参考方案2】:

将 xml 布局中的这两行添加到可能需要省略号的 TextView 中。

android:ellipsize="end" android:maxLines="1"

【讨论】:

以上是关于带有两个 TextView 和省略号的布局的主要内容,如果未能解决你的问题,请参考以下文章

android 一行有多个textview 当内容过长时 怎么让第一个显示省略号 最后一个全部显示

如何设置滚动视图内并包含两个 TextView 的线性布局的可见性消失?

android textview 设置单行最大宽度和ellipsize省略号时整体变短的问题

Android中TextView如何实现水平和垂直滚动

android开发之当设置textview多少字后以省略号显示。限制TextView的字数

Android中如何让TextView显示指定的行数并且多出的部分显示省略号