家政服务如何提升家庭生活质量与幸福感
3212
2022-12-27
本文目录一览:
对于金额等的输入,常常要求TextField限制输入为小数,可使用以下约束:
但这种限制会有问题,比如可以输入 0.1.1 这种其实就不是小数了,并且不能限制小数点的输入位数。
继承TextInputFormatter类,重写formatEditUpdate方法:
温馨提示:
demo传送门
在以前的 《Flutter 上默认的文本和字体知识点》 和 《带你深入理解 Flutter 中的字体“冷”知识》 中,已经介绍了很多 Flutter 上关于字体有趣的知识点,而本篇讲继续介绍 Flutter 上关于 Text 的一个属性: FontFeature , 事实上相较于 Flutter ,本篇内容可能和前端或者设计关系更密切 。
什么是 FontFeature ? 简单来说就是影响字体形状的一个属性 ,在前端的对应领域里应该是 font-feature-settings ,它有别于 FontFamily ,是用于指定字体内字的形状的一个参数。
我们知道 Flutter 默认在 Android 上使用的是 Roboto 字体,而在 iOS 上使用的是 SF 字体,但是其实 Roboto 字体也是分很多类型的,比如你去查阅手机的 system/fonts 目录,就会发现很多带有 Roboto 字样的字体库存在。
所以 Roboto 之类的字体库是一个很大的字体集,不同的 font-weight 其实对应着不同的 ttf ,例如默认情况下的 Roboto 是不支持 font-weight 为 600 的配置 :
所以如下图所示,如果我们设置了 w400 - w700 的 weight ,可以很明显看到中间的 500 和 600 其实是一样的粗细,所以在 设置 weight 或者设计 UI 时,就需要考虑不同平台上的 weight 是否支持想要的效果 。
回归到 FontFeature 上,那 Roboto 自己默认支持多少种 features 呢? 答案是 26 种,它们的编码如下所示,运行后效果也如下图所示,从日常使用上看,这 26 种 Feature 基本满足开发的大部分需求。
而 iOS 上的 SF pro 默认支持 39 种 Features , 它们的编码如下所示,运行后效果也如下图所示,可以看到 SF pro 支持的 Features 更多。
所以可以看到,并不是所有字体支持的 Features 都是一样的,比如 iOS 上支持 sups 上标显示和 subs 下标显示,但是 Android 上的 Roboto 并不支持,甚至很多第三方字体其实并不支持 Features 。
有趣的是,在 Flutter Web 有一个渲染文本时会变模糊的问题 #58159 ,这个问题目前官方还没有修复,但是你可以通过给 Text 设置任意 FontFeatures 来解决这个问题。
最后,如果对 FontFeature 还感兴趣的朋友,可以通过一下资料深入了解,如果你还有什么关于字体上的问题,欢迎留言讨论。
基于网友的问题再补充一下拓展知识,毕竟这方面内容也不多 。
事实上在 dart 里就可以看到对应 FontWeight 约定俗称用的是字体集里的什么字体:
所以如果对于默认字体有疑问,可以在你的手机字体找找是否有对应的字体, 比如虽然我们说 roboto 没有 600 ,但是如果是 roboto mono 字体集是有 600 的 fontweight ,甚至还有 600 斜体: https://fonts.google.com/specimen/Roboto+Mono 。
另外注意这是 Flutter 而不是原生,具体实现调用是在 Engine 的 paragraph_skia.cc 和 paragraph_builder_skia.cc 下对应的 setFontFamilies 相关逻辑,当然默认字体库指定在 typography.dart 下就看到,例如 'Roboto' 、 '.SF UI Display' 、 '.SF UI Text' 、 '.AppleSystemUIFont' 、 'Segoe UI' :
另外如果你在 Mac 的 Web 上使用 Flutter Web,可以看到指定的是 .AppleSystemUIFont ,而对于 .AppleSystemUIFont 它其实不算是一种字体,而是苹果上字体的一种集合别称:
[图片上传失败...(image-40f5ce-1648368234737)]
还有,如果你去看 Flutter 默认自带的 cupertino/context_menu_action.dart ,就可以看到一个有趣的情况:
当然,前面我们说了那么多,主要是针对英文的情况下,而在中文下还是有差异的 ,之前的文章也介绍过:
例如,在苹果上的简体中文其实会是 PingFang SC 字体,对应还有 PingFang TC 和 PingFang HK 的繁体集,而关于这个问题在 Flutter 上之前还出现过比较有意思的 bug :
当然后续的 #16709 修复了这个问题 ,而在以前的文章我也讲过,当时我遇到了 “Flutter 在 iOS 系统上,系统语言是韩文时,在和中文一起出现会导致字体显示异常" 的问题 :
解决方法也很简单,就是给 fontFamilyFallback 配置上 ["PingFang SC" , "Heiti SC"] 就可以了,这是因为韩文在苹果手机上使用的应该是 Apple SD Gothic Neo 这样的超集字体库,【广】这个字符在这个字体集上是不存在的,所以就变成了中文的【广】;
所以可以看到,字体相关是一个平时很少会深入接触的东西,但是一旦涉及多语言和绘制,就很容易碰到问题的领域 。
想要在WPS表格中把汉字转换成拼音或小写字母flutter输入法,只需要运用模块代码编辑功能就能轻松解决,具体操作方法如下:
步骤1、打开要转换成拼音flutter输入法的excel表格,按“Alt+F11”组合键,进入Visual Basic编辑状态。也就是看到的这个灰色的编辑界面。
步骤2、执行“插入→模块”命令,插入一个新模块。再双击插入的模块,进入模块代码编辑状态。
步骤3、看到如下界面。
步骤4、把下面的所有内容复制,粘贴到步骤4中的空白处。
Function pinyin(p As String) As String
i = Asc(p)
Select Case i
Case -20319 To -20318: pinyin = "a "
Case -20317 To -20305: pinyin = "ai "
Case -20304 To -20296: pinyin = "an "
Case -20295 To -20293: pinyin = "ang "
Case -20292 To -20284: pinyin = "ao "
Case -20283 To -20266: pinyin = "ba "
Case -20265 To -20258: pinyin = "bai "
Case -20257 To -20243: pinyin = "ban "
Case -20242 To -20231: pinyin = "bang "
Case -20230 To -20052: pinyin = "bao "
Case -20051 To -20037: pinyin = "bei "
Case -20036 To -20033: pinyin = "ben "
Case -20032 To -20027: pinyin = "beng "
Case -20026 To -20003: pinyin = "bi "
Case -20002 To -19991: pinyin = "bian "
Case -19990 To -19987: pinyin = "biao "
Case -19986 To -19983: pinyin = "bie "
Case -19982 To -19977: pinyin = "bin "
Case -19976 To -19806: pinyin = "bing "
Case -19805 To -19785: pinyin = "bo "
Case -19784 To -19776: pinyin = "bu "
Case -19775 To -19775: pinyin = "ca "
Case -17721 To -17704: pinyin = "he "
Case -17703 To -17702: pinyin = "hei "
Case -17701 To -17698: pinyin = "hen "
Case -17697 To -17693: pinyin = "heng "
Case -17692 To -17684: pinyin = "hong "
Case -17683 To -17677: pinyin = "hou "
Case -17676 To -17497: pinyin = "hu "
步骤5、按下ALT+Q关闭Visual Basic编辑窗口,返回Excel编辑状态。
步骤6、选中转换后的拼音需要放在哪个列,例如要把B列的第2行的内容转换成拼音,放在D列的第2个单元格,输入公式:=getpy(B2),这里的B2,是指源头单元格的坐标。
步骤7、如果要去除拼音之间的空格。去掉空格的拼音放在E列,如果这个未去掉空格的数据原来在D2单元格,去掉空格之后的拼音放在E2单元格,则在E2单元格输: =SUBSTITUTE(D2," ","")。
关于flutter输入法和flutter输入法开发的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 flutter输入法的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于flutter输入法开发、flutter输入法的信息别忘了在本站进行查找喔。版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~