持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情
前言
Text是Flutter最常见的Widget之一。我们可以用它放置文本,或者在默认组件不满足要求的情况下,可以结合其他组件来组成如按钮这些的自定组件。
虽然用法很简单,但不注意的情况下依旧会出现很多奇奇怪怪的问题。下面就总结下行高部分遇到的问题和解决方案。
height 行高问题
若是设计是按web来给的Flutter的布局属性,那通常来说都会有个height属性,但这时候我们就要根据情况来决定是否要设置这个height,不能原样照抄。
为什么?因为Text在height为null的情况下,即不设置行高的情况下,文本是默认在框的垂直居中位置的,并且会自适应大小。
而若是设置了height之后,则空间分布的策略则不会是均匀分布了。文字上方和下方的总空间叫leading,
When [height] is provided, the line's EM-square ascent and descent (whichsums to [fontSize]) will be scaled by [height] to achieve a final strutheight of fontSize * height + fontSize * leading logical pixels. Thefollowing diagram illustrates the differences between the font metricsdefined height and the EM-square height:
proportional→ constTextLeadingDistribution
Distributes theleadingof the text proportionally above and below the text, to the font's ascent/descent ratio.
The leading of a text run is defined asTextStyle.height * TextStyle.fontSize - TextStyle.fontSize. WhenTextStyle.heightis not set, the text run uses the leading specified by the font instead.
所以设置height之后,则会按比例分布leading在文本的上方和下方。具体这个比例根据字体而定。
(图片来自Flutter)
所以如果我们绘制的是一个如按钮类的少量单行的文本,这时候我们就最好不要设置height,让系统自动处理来居中(默认字体下)。然后英文比如g之类的看起来不居中,这个跟基线有关,实际对于英文来说就是居中的。
当然,我们也可以设置策略为均匀分布的,
Text(
"测试Test 2.0",
style: TextStyle(
fontSize: 15,
height: 2.0,
leadingDistribution: TextLeadingDistribution.even, // 设置leading策略
),
)
TextLeadingDistribution有两个,proportional和even,默认为proportional,根据字体的leading比例来分布上下空间。even则是均分上下空间,就是CSS中的。
看看效果
即使height为2.0,可以看到也是居中的,不过上下空间相应增大。1.0的未处理。
如何实现首字下沉效果
height其实是最外层简单的属性。他实际设置的是StrutStyle中的height。StrutStyle可以设置总的行的空间样式(下面称为支柱样式),即简单来说,TextRich可以用它来指定一个行的总支柱,并且各个TextSpan依旧可以设定自己的TextStyle,但不会影响到支柱。
直接看官方的示例
const Text.rich(
TextSpan(
text: ' he candle flickered\n',
style: TextStyle(
fontSize: 14,
fontFamily: 'Serif'
),
children: [
TextSpan(
text: 'T',
style: TextStyle(
fontSize: 37,
fontFamily: 'Serif'
),
),
TextSpan(
text: 'in the moonlight as\n',
style: TextStyle(
fontSize: 14,
fontFamily: 'Serif'
),
),
TextSpan(
text: 'Dash the bird fluttered\n',
style: TextStyle(
fontSize: 14,
fontFamily: 'Serif'
),
),
TextSpan(
text: 'off into the distance.',
style: TextStyle(
fontSize: 14,
fontFamily: 'Serif'
),
),
],
),
strutStyle: StrutStyle(
fontFamily: 'Serif',
fontSize: 14,
forceStrutHeight: true,
),
)
实际上T是在第二行,但该行的支柱并没有因为他的fontSize而撑大,因为StrutStyle已经定义好了每行的支柱。
首字下沉的方式很简单的就实现了。
总结
设置height即在设置文本的支柱高度,这个高度是文本高度和文本上下的空间(leading)之和。在不设置的情况下,会自动均匀分配leading。所以要根据设计图的情况,分析是否需要设置height,单行文本居中的话,一般都不需要设置,除非需要根据文本大小来规定高度,那么就配合TextLeadingDistribution.even来设置leading分配的策略;若是多行文案的布局(文章类展示),则可以设置height来达到一个更好的视觉效果。
在height不能够满足要求的情况下,可以配置StrutStyle来更高级的设置支柱和文本的搭配,实现更好的效果。
如何使用WPS打开XML文件
(一)如何使用WPS打开XML文件
打开方法:
1、按下电脑电源键开机,进入主页面;
2、打开WPS应用程序,选择打开选项,下拉菜单栏,选择数据选项;
3、进入数据页面,选择获取外部数据选项;
4、进入获取外部数据页面,选择来自XML数据导入选项;
5、等待导入完成,程序可将xml文件自动转化为标准表格,打开成功。
(二)XMl的语法规则有哪些
文档必须以可扩展标记语言声明开始;元素必须有开始标记和结束标记,空元素也必须有结束标记;元素名称必须区分大小写;文档中必须而且只能有一个包含其他所有元素的元素,称为根元素;元素可以嵌套,但不能交叉;属性值必须加引号;字符“小于号”只能用于开始标记和引用实体。
(三)怎么样才能更改编辑xml文件
更改、编辑xml文件步骤如下:
1、鼠标点击“修改xml文件;
2、需要修改文件,鼠标点“导入xml文件”,找到文件存放路径,选择打开;
3、鼠标双击列表中的单号,可进入修改界面;
4、双击监管码,可删除;
5、修改结束后,点“修改”按钮完成数据修正。
(四)xml文件怎么打开
1、我们在电脑上面找到想要打开的xml文件,点击鼠标右键。
2、在鼠标右键列表当中,我们选择打开方式。
3、我们这里在列表当中选择其他应用打开。
4、在这个当中,我们选择wps office,然后点击确定。
5、接着我们选择wps表格,点击打开。
6、最后我们就可以看到打开的文件了。