当前位置: 首页 > 知识库问答 >
问题:

Android,如何限制TextView的宽度(并在文本末尾添加三个点)?

匡玉堂
2023-03-14

我有一个textview,我想限制它的字符。实际上,我可以这样做,但我要找的是如何添加三个点(...)在字符串的末尾。这一个显示文本已继续。这是我的XML,但没有点,虽然它限制了我的文本。

<TextView 
        android:id                      = "@+id/tvFixture"
        android:layout_width            = "wrap_content"
        android:layout_height           = "wrap_content"
        android:layout_toLeftOf         = "@id/ivFixture_Guest"
        android:text                    = "@string/test_06"
        android:lines                   = "1"
        android:ems                     = "3"
        android:gravity                 = "right"
        style                           = "@style/simpletopic.black" 
        android:ellipsize="end"/>

共有2个答案

濮阳安澜
2023-03-14

以下是我通过使用各种选项将TextView强制到单行(有无三个点)所学到的知识。

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:text="one two three four five six seven eight nine ten" />

这只是将文本强制为一行。任何额外的文本都将被隐藏。

相关:

  • Android:MaxLines
  • 安卓:SingleLine(注意这个和这个)
  • 安卓:线路
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:ellipsize="end"
    android:text="one two three four five six seven eight nine ten" />

这将删除不适合的文本,但通过添加省略号(三个点),让用户知道文本已被截断。

相关:

  • ellipsize=“开始”(...AAABBBCCC)
  • ellipsize=“middle”(AAA...ccc)
  • Android:椭圆,选项的含义
<TextView
    android:id="@+id/MarqueeText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:singleLine="true"
    android:ellipsize="marquee"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:text="one two three four five six seven eight nine ten" />

这会使文本在TextView上自动滚动。注意,有时需要在代码中设置:

textView.setSelected(true);

假定android:maxlines=“1”android:singleLine=“true”应该做基本相同的事情,由于singleLine=“true”显然不推荐使用它,所以我宁愿不使用它,但当我取出它时,选框不再滚动。但是,去掉maxlines并不影响它。

相关:

  • Android中的选框文本
<HorizontalScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/horizontalScrollView">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:scrollHorizontally="true"
        android:text="one two three four five six seven eight nine ten" />
</HorizontalScrollView>

这允许用户手动滚动以查看整行文本。

宋鸿云
2023-03-14

已弃用:

在Textview中再添加一个属性android:singleline=“true”

更新:

android:ellipsize="end" 
android:maxLines="1"
 类似资料:
  • 我有一个文本视图下的卡片视图,我想如何在文本视图的结尾三个点,当文本足够长的时候。 我尝试在文本视图中添加下面的行,但无法帮助我。 截图 谢谢

  • 我想知道如何在数组末尾添加或追加一个新元素。有什么简单的方法可以在末尾添加元素吗?我知道如何使用StringBuffer,但我不知道如何使用它在数组中添加元素。我更喜欢没有ArrayList或List。我想知道StringBuffer是否能处理整数。

  • 在我的应用程序中,我希望使用此库来显示项。 服务器中的ArrayList:

  • 将数据写入字符串生成器的逻辑,在由于append(“\n”)而迭代最后一条记录之后,将添加一个我不需要的新空行。

  • 问题内容: 我有一个文本区域,其中包含一些文本,我想再次向其中添加一些行(第一行+我要添加的其他行),但是它不起作用。 我现在的操作方式将擦除旧文本并仅显示新行。 问题答案: 代替使用,使用。 将给定的文本追加到文档末尾。如果模型为null或字符串为null或为空,则不执行任何操作。 这会将文字添加到您的末尾。 另一个选择是使用来从中获取文本,然后操作String(添加或删除或更改String),

  • 注意,这个空间只在最末端可见,因为我不想改变布局。我可以使recycerview有一个50dp的边际底部,但我不想这样做。