use*_*007 5 android android-edittext spannablestring spannable
当用户撰写时,如何在 EditText 文本上应用跨度?
例如,用户在撰写时激活了“粗体”,因此此后输入的每个字符都应该是粗体。
我考虑过向 EditText 添加文本更改侦听器并在用户撰写时更新文本,但我想知道是否有更好的方法来执行此操作。
这个问题已经在评论中得到了回答,但为了使其更持久,我将添加更完整的答案。
为了在用户撰写的任何地方设置跨度(如粗体),您只需在光标(或选择)位置的文本上设置跨度。
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD);
int start = editText.getSelectionStart();
int end = editText.getSelectionEnd();
int flag = Spannable.SPAN_INCLUSIVE_INCLUSIVE;
editText.getText().setSpan(boldSpan, start, end, flag);
Run Code Online (Sandbox Code Playgroud)
该SPAN_INCLUSIVE_INCLUSIVE标志意味着在跨度之前或之后添加的任何文本都将包含在跨度中,即使文本长度是0添加跨度时的长度。
也可以看看
| 归档时间: |
|
| 查看次数: |
6624 次 |
| 最近记录: |