android - 使 TextView "\n" 忽略段落创建
问题描述
我有一个这样的文本字符串,其中包含几个换行符控制字符。
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.
当我LeadingMarginSpan
在 TextView 上使用时,它适用于每个换行符之后。
^ 这是我应用LeadingMarginSpan
.
^ 这就是我想要的结果。
有什么办法可以忽略其中的段落,TextView
这样我们就可以正常换行了吗?
解决方案
这是你要找的吗?
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
}
}
}
推荐阅读
- php - 文件在 foreach 循环中只包含一次,为什么?
- django - Django - POST 方法不适用于在模板中的 FOR 循环中创建的表单
- file - Kubernetes Nginx 上传大文件 400 No 'Access-Control-Allow-Origin'
- java - 使用 nohup 运行 java jar 应用程序后无法在 shell 脚本中执行下一条语句
- selenium - 我可以使用 Selenium 在同一个浏览器中执行多个测试用例吗
- html - 如果我再次输入按钮,HTML 输入类型日期有时会返回空值
- react-native - react-navigation go 返回不导航到上一个屏幕
- swift - 无法在 Facebook shareDialog 中将“ViewController.Type”转换为“UIViewController”
- python - 使用 python 从 CT 扫描中制作 3D 模型的最佳方法?
- wpf - 命令绑定在弹出窗口中不起作用