首页 > 解决方案 > Android 如何用空格替换 TextView 和通知的换行符?

问题描述

背景

我有一个输入字符串,我需要在有限的行数中显示(在这种情况下为 1,但可能会更改),并在通知中显示。文本可能有换行符(“\n”),所以如果它是有限的,它不应该显示下面的行。

问题

假设您有一些要在 TextView 上显示的字符串,但该字符串中有一些新行。

例子:

textView.text = "Hello\n\nWorld"

如果您设置android:maxLines="1"和/或android:singleLine="true",确实会将所有内容放在一行中,但它只会用空格替换新行:

https://i.imgur.com/ivTABte.png

不仅如此,而且尝试在通知中设置文本,我看到了完全相同的行为,但它不应该受到行数的限制。在那里我还看到“Hello World”......

这是它的一个片段:

        val builder = ...
        builder.setSmallIcon(...)
        builder.color = ...
        builder.setContentTitle(...)
                .setTicker(...).setContentText(theProblematicText)

我试过的

我尝试了 TextView 的各种属性,但找不到可以修复它的属性。

我知道如果我愿意,我可以解析输入文本并在到达第一个“\n”时将其剪切,但这不是一个好的解决方案,因为它只处理单行限制,也不能解决通知的问题。

问题

  1. 为什么Android用简单的空格替换那些字符?
  2. TextView 和 Notification 如何避免它?
  3. 如何使 TextView 仅显示输入文本的前 X 行?我真的必须解析它吗?

标签: androidtextviewandroid-notifications

解决方案


推荐阅读