Textview Android Kotlin 中的订单列表

问题描述

嘿,我想在 android Kotlin 的 textview 中按顺序列表显示文本。我试过Ordered List inside an Android Textview。我试过这里的代码它有效,但它的缺失与数字文本的高度匹配。我将分享我到目前为止所做的代码

NumberIndentSpan.kt

import android.graphics.Canvas
import android.graphics.Paint
import android.text.Layout
import android.text.style.LeadingMarginSpan

class NumberIndentSpan(
    private val leadWidth: Int,private val gapWidth: Int,private val index: Int
) : LeadingMarginSpan {

    override fun getLeadingMargin(first: Boolean): Int = leadWidth + gapWidth

    override fun drawLeadingMargin(
        c: Canvas?,p: Paint?,x: Int,dir: Int,top: Int,baseline: Int,bottom: Int,text: CharSequence?,start: Int,end: Int,first: Boolean,layout: Layout?
    ) {
        if (first) {
            val orgStyle = p!!.style
            p.style = Paint.Style.FILL
            val width = p.measureText("4.")
            c!!.drawText("$index.",(leadWidth + x - width / 2) * dir,bottom - p.descent(),p)
            p.style = orgStyle
        }
    }
}

MainActivity.kt

 val list = mutablelistof(
                "Log in Google account\n","Scroll to the page\n","Tap disconnect from account to logout"
            )
            var number = 1
            val builder = SpannableStringBuilder()
            for (text in list) {
                val contentStart: Int = builder.length
                builder.append(text)
                builder.setSpan(NumberIndentSpan(15,15,number),contentStart,builder.length,0)
                number++
            }
            textView.text = builder

我想将数字文本放在相同的高度。如图所示,我从这段代码中得到了什么。我也遇到了格式问题,比如 1st 点和 2nd 点文本开始不同,我想要顺序。我该如何解决所有这些问题。提前致谢

What i got

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...