我有一个显示长文本的TextView。我想在行之间留出一些空间,就像CSS中的line-height属性一样。我该怎么做呢?
你可以查看android:lineSpacingExtra并将其应用到你的XML中
附加信息在此页
或相关方法public void setlinespcing (float add, float mult)
附加信息
如果你想在文本之间填充,试试LineSpacingExtra="10sp"
<TextView
android:layout_width="match_parent"
android:layout_height="180dp"
android:lineSpacingExtra="10sp"/>
这个补充答案显示了改变行间距的效果。
您可以设置乘数和/或额外的间距
textView.setLineSpacing(float add, float mult)
或者你可以用
int lineHeight = textView.getLineHeight();
float add = tvSampleText.getLineSpacingExtra(); // API 16+
float mult = tvSampleText.getLineSpacingMultiplier(); // API 16+
公式在哪里
lineHeight = fontMetricsLineHeight * mult + add
默认的乘数是1,默认的额外间距是0。
您可以在XML文件中使用lineSpacingExtra或lineSpacingMultiplier。
在TextView的文本行之间增加额外的间距
<TextView
android:lineSpacingExtra="4dp" />
lineSpacingMultiplier作为线空间高度的比例因子:
<TextView
android:lineSpacingMultiplier="0.8" />
换句话说,每一行的高度将是高度*乘数+额外。
你可以用2磅
1. lineSpacingExtra: 它用于dp间距
android:lineSpacingExtra="4dp"
2. lineSpacingMultiplie: 它用于相对规模
android:lineSpacingMultiplier="0.8"
作为上述解决方案的扩展答案
记住,你可以添加<item name="android:lineHeight">16sp</item>来直接设置行高,但根据上面的文档,行是这样工作的-
Explicit height between lines of text. If set, this will override the values set for lineSpacingExtra and lineSpacingMultiplier.
<attr name="lineHeight" format="dimension" />
所以一定要使用lineSpacingExtra & lineSpacingMultiplier或lineHeight,而不是两者都使用。
截至2021年11月16日, 我使用这条线来增加行间距的高度:
android:lineHeight="25dp"
对我来说,其他答案没有帮助,因为可能他们更新了属性,在这个版本中有很多东西发生了变化。
推荐文章
- 改变开关的“开”色
- 以编程方式将EditText的输入类型从PASSWORD更改为NORMAL,反之亦然
- 如何在隐藏和查看密码之间切换
- 在Android上调整一个大的位图文件到缩放输出文件
- 如何更改Android版本和代码版本号?
- Android Studio突然无法解析符号
- 应用程序重新启动而不是恢复
- 如何设置整个应用程序在纵向模式?
- Android中文本的阴影效果?
- 以编程方式设置TextView的布局权重
- Android -如何覆盖“后退”按钮,所以它不完成()我的活动?
- 如何从通知点击发送参数到一个活动?
- 导航目标xxx对于这个NavController是未知的
- 使用ConstraintLayout均匀间距的视图
- 文件google-services错误。模块根文件夹中缺少Json。谷歌服务插件没有它就不能正常工作。