Compose TextField:将光标放在文本上会删除 LineThrough TextDecoration

问题描述 投票:0回答:2

我在撰写中使用

TextField
BasicTextField
并使用以下方法在文本上设置删除线跨度:

SpanStyle(textDecoration = TextDecoration.LineThrough)

它按预期在文本上呈现删除线。但是,当我将光标放在它上面时,删除线消失了,文字被加了下划线。下划线是我认为每当光标放在文本上时的默认行为,所以我认为这很好。

但是当光标位于文本上时,我如何获得删除线以显示?

这不会发生在基于视图的

EditText
AppCompatEditText
.

android android-jetpack-compose textfield rich-text-editor android-compose-textfield
2个回答
0
投票

尝试为 editText 设置绘画标志

editText.paintFlags = Paint.STRIKE_THRU_TEXT_FLAG

删除设置

editText.paintFlags = Paint.CURSOR_AFTER

0
投票

你可以尝试这样的事情,

SpanStyle(textDecoration = TextDecoration.LineThrough, 
              underline = TextDecoration(
                  color = Color.Red,
                  thickness = 1.dp,
                  width = TextDecoration.Width.Intrinsic
              )
    )

当光标放在文本上时,这将应用一条粗细为 1dp 的红色下划线。您可以调整值以适合您想要的样式。

或者,您也可以通过将下划线设置为 TextDecoration.None 来完全禁用下划线。

scs

SpanStyle(textDecoration = TextDecoration.LineThrough, 
          underline = TextDecoration.None
)

这将防止当光标放在文本上时出现任何下划线。

© www.soinside.com 2019 - 2024. All rights reserved.