android - 如何将带有格式的文本添加到编辑文本中?

标签 android android-edittext

enter image description here

图片来自名为 kakao story 的应用。

假设有一个带有评论列表的帖子,就像任何 sns 应用程序一样。
当您单击评论时,它会在编辑文本中插入评论者的用户名,以指示我的新评论是对用户的回复
(您不能多次添加相同的名称。)
当您按下退格键删除名称时,组成名称的整个字符(例如,示例中的 chabeau)将被 1-backspace 删除。

我正在尝试模仿这种行为,并希望获得一些关于如何实现它或搜索什么的指导。

最佳答案

如果您正在寻找气泡 View 。您可以通过创建 android.text.style.DynamicDrawableSpan.ImageSpan 的子类来实现它,该子类会将 EditText 字符串的一部分转换为格式化的 span .

这个 SO Question 会给你一些关于创建格式化跨度的基本概念。

This 是使用 spans 自定义 editext 的好教程。

要一次删除整个单词,您可以使用 SPAN_EXCLUSIVE_EXCLUSIVE 属性。

下面的代码将格式化字符串的前四个字符,希望这能给你一些提示。

final SpannableStringBuilder sb = new SpannableStringBuilder("your text here");
final ForegroundColorSpan fcs
    = new ForegroundColorSpan(Color.rgb(158, 158, 158)); 

// Span to set text color to some RGB value
sb.setSpan(fcs, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

yourTextView.setText(sb);

关于android - 如何将带有格式的文本添加到编辑文本中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14271410/

相关文章:

android - OutOfMemoryError captureSharedElementState androidL

android - 在软键盘中禁用 DONE,直到在编辑文本中键入最少数量的字符

android - TextInputLayout EditText nextFocusRight 不能正常工作

android - 有什么办法可以省略 EditText 中的提示吗?

android - 将 Chrome 自定义标签设置为主视图

android - 输出顺序显示错误

java - 不幸的是,程序已停止

android - Android 是否将从 HTTP 下载的图像保存在缓存中?

Android编辑文本光标位置不会在第一次改变

android - NextFocusDown 不适用于 AutoCompleteTextView