我有一个显示长文本的TextView。我想在行之间留出一些空间,就像CSS中的line-height属性一样。我该怎么做呢?
当前回答
如果你想在文本之间填充,试试LineSpacingExtra="10sp"
<TextView
android:layout_width="match_parent"
android:layout_height="180dp"
android:lineSpacingExtra="10sp"/>
其他回答
您可以在XML文件中使用lineSpacingExtra和lineSpacingMultiplier。
您可以在XML文件中使用lineSpacingExtra或lineSpacingMultiplier。
在TextView的文本行之间增加额外的间距
<TextView
android:lineSpacingExtra="4dp" />
lineSpacingMultiplier作为线空间高度的比例因子:
<TextView
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,而不是两者都使用。
这个补充答案显示了改变行间距的效果。
您可以设置乘数和/或额外的间距
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。
你可以查看android:lineSpacingExtra并将其应用到你的XML中
附加信息在此页
或相关方法public void setlinespcing (float add, float mult)
附加信息
推荐文章
- 如何在android中复制一个文件?
- adb找不到我的设备/手机(MacOS X)
- 如何在新的材质主题中改变背面箭头的颜色?
- androidviewpager与底部点
- 相同的导航抽屉在不同的活动
- 如何从视图中获得托管活动?
- 单一的TextView与多种颜色的文本
- 如何在非活动类(LocationManager)中使用getSystemService ?
- 在清单中注册应用程序类?
- Android:从数组中编程创建旋转器
- Android命令行工具sdkmanager总是显示:警告:无法创建设置
- 如何设置RecyclerView应用程序:layoutManager=""从XML?
- 在没有开发服务器的情况下在设备上构建和安装unsigned apk ?
- 操作栏和新引入的工具栏有什么不同?
- 调整浮动动作按钮图标大小(fab)