【问题标题】:Android EditText, change color, styles while typingAndroid EditText,在打字时改变颜色,样式
【发布时间】:2022-01-23 18:25:35
【问题描述】:

我正在制作一个 android 高级编辑器,允许用户在输入时更改文本颜色、样式(粗体、斜体、下划线)。

我可以通过使用 SpannableStringBuilder 来实现样式,但似乎 SpannableStringBuilder 只能应用于现有字符(例如突出显示它们并更改颜色)。

当用户在没有基于现有文本的情况下输入新字符时,如何实现相同的效果?

例如,如果我在控件上选择黄色文本颜色和下划线,当用户键入新字符时,这些字符将带下划线并显示为黄色。

【问题讨论】:

    标签: android android-edittext spannablestringbuilder


    【解决方案1】:

    只需在 beforeTextChange 中添加修改edittext的乐趣

     binding.edtCustomInput.doBeforeTextChanged { text, start, count, after ->
            //set style here
            binding.edtCustomInput.setTextColor(Color.YELLOW)
            binding.edtCustomInput.paintFlags = Paint.UNDERLINE_TEXT_FLAG
        }
    

    【讨论】:

    • 这不正确,我只想更改部分文本,而不是整个文本
    • 这么奇怪的要求是@@ 只是一个解决方案,创建一个水平方向的线性布局,每次你采用新颜色时,通过 addView() 添加一个具有特定颜色的新编辑文本。
    • 我找到了最正确的解决方案,即使用带有 EditText.TextFormatted 的 SpannableStringBuilder,您可以在文本的一部分和打字时进行任何自定义样式。
    猜你喜欢
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 2021-07-09
    • 2014-11-08
    • 2015-04-02
    • 2015-06-09
    相关资源
    最近更新 更多