Я пытаюсь получить собственный TextDecoration — DashUnderline. Существующие ответы работают только для одной строки, и мне нужны пунктирные линии для каждой строки текста.

Для TextView у меня есть класс, но я понятия не имею, как преобразовать его в Compose.
класс DashedUnderlineSpan( textView: TextView, цвет: Int, толщина: Float, DashPath: Float, offsetY: Float, интервалExtra: Float ) : LineBackgroundSpan, LineHeightSpan { частная вал краска: Краска частный val textView: TextView частное значение offsetY: Float частный интервал значенийДополнительно: Float переопределить удовольствие ChooseHeight( текст: CharSequence, начало: Int, конец: Int, spanstartv: Int, v: Int, фм: Paint.FontMetricsInt ) { fm.ascent -= spacingExtra.toInt() fm.top -= spacingExtra.toInt() fm.descent += spacingExtra.toInt() fm.bottom += spacingExtra.toInt() } переопределить fun drawBackground( холст: Canvas, p: Paint, слева: Int, справа: Int, сверху: Int, базовая линия: Int, внизу: Int, текст: CharSequence, начало: Int, конец: Int, lnum: Int ) { val lineNum = textView.lineCount for (я от 0 до lineNum) { val макет = textView.layout val путь = android.graphics.Path() path.moveTo(layout.getLineLeft(i), layout.getLineBottom(i) - spacingExtra + offsetY) path.lineTo(layout.getLineRight(i), layout.getLineBottom(i) - spacingExtra + offsetY) Canvas.drawPath(путь, краска) } } в этом { краска = Краска() краска.цвет = цвет краска.стиль = Краска.Стиль.ОБМОК Paint.pathEffect = DashPathEffect(floatArrayOf(dashPath, DashPath), 0f) Paint.strokeWidth = толщина this.textView = textView this.offsetY = смещениеY this.spacingExtra = интервалExtra } }