使 TextView "\n" 忽略段落创建
Make TextView "\n" ignore paragraph creation
我有一串这样的文本,只有很少的换行控制字符。
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\nUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
当我在 TextView 上使用 LeadingMarginSpan
时,它适用于每个换行符之后。
^ 这是我应用 LeadingMarginSpan
.
得到的结果
^ 这就是我想要的结果。
有什么方法可以忽略 TextView
中的段落,这样我们就可以正常换行了吗?
不需要使用LeadingMarginSpan。您可以在文本的开头添加“\t”:
val text = "\t" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit," +
" sed do eiusmod tempor incididunt ut labore et dolore " +
"magna aliqua.\nUt enim ad minim veniam, " +
"quis nostrud exercitation ullamco laboris nisi " +
"ut aliquip ex ea commodo consequat."
text_view.text = text
这是您要找的吗?
import android.graphics.Canvas
import android.graphics.Paint
import android.text.Layout
import android.text.style.LeadingMarginSpan
class OnlyFirstParagraphSpan : LeadingMarginSpan {
private var firstLine : Boolean = true
private var margin : Int = 32
override fun getLeadingMargin(first: Boolean) = margin
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, l: Layout) {
if (firstLine) {
margin = 32
firstLine = false
} else {
margin = 0
}
}
}
您只能将 0
中的 LeadingMarginSpan.Standard(inset, 0)
应用到新行的第一行,因此它不适用于其余段落。
我有一串这样的文本,只有很少的换行控制字符。
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\nUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
当我在 TextView 上使用 LeadingMarginSpan
时,它适用于每个换行符之后。
^ 这是我应用 LeadingMarginSpan
.
^ 这就是我想要的结果。
有什么方法可以忽略 TextView
中的段落,这样我们就可以正常换行了吗?
不需要使用LeadingMarginSpan。您可以在文本的开头添加“\t”:
val text = "\t" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit," +
" sed do eiusmod tempor incididunt ut labore et dolore " +
"magna aliqua.\nUt enim ad minim veniam, " +
"quis nostrud exercitation ullamco laboris nisi " +
"ut aliquip ex ea commodo consequat."
text_view.text = text
这是您要找的吗?
import android.graphics.Canvas
import android.graphics.Paint
import android.text.Layout
import android.text.style.LeadingMarginSpan
class OnlyFirstParagraphSpan : LeadingMarginSpan {
private var firstLine : Boolean = true
private var margin : Int = 32
override fun getLeadingMargin(first: Boolean) = margin
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, l: Layout) {
if (firstLine) {
margin = 32
firstLine = false
} else {
margin = 0
}
}
}
您只能将 0
中的 LeadingMarginSpan.Standard(inset, 0)
应用到新行的第一行,因此它不适用于其余段落。