如何在TextView中普通文本之间插入芯片?

3

您好,我希望能在我的应用中使用这个设计(从 Web 应用程序截屏):

Test <PILL> Test

我已经了解了材质设计组件的 Chips。但是,在运行时如何动态地将多个 TextView 拆分为一个 Chip 或将 Chip 放置在 TextView 中?这是否可以在不使用 WebView 的情况下实现?

文本内容不能在构建时确定,因为这是一款聊天应用程序。这意味着我想在运行时决定在文本中放置芯片的位置和次数。原始文本如下:Test <a href=\"https://matrix.to/#/@DasNordlicht:matrix.ffslfl.net\">DasNordlicht</a> Test 如果有影响的话。

1个回答

4

摘自Material Components芯片文档:

在需要Drawable的情况下,您还可以直接使用独立的ChipDrawable。 例如,启用自动完成的文本字段可以使用span将其替换为ChipDrawable,以表示它是一个语义实体。

因此,要在TextView中使用Chip,您需要创建一个ImageSpan,该ImageSpan使用ChipDrawable作为其图像,并可包含在TextView的文本中。


谢谢,我之前不知道ImageSpan :) 经过5个小时的挖掘,终于搞定了。(遇到了一些主题和传递上下文的问题) - MTRNord
@MTRNord 很棒! - johan98
@MTRNord 在主题和传递的上下文方面遇到了一些问题 -> 请更新代码并添加此部分 :) - anna_manzhula
@anna_manzhula,我想我不能(我会查找我的存档)。这段代码是我停止工作的项目的一部分。最后,我甚至不认为我曾将其提交到源代码树中。我会尝试找到相关的代码行。 - MTRNord

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接