当前位置: 首页 > news >正文

上海松江做网站的公司/企业推广平台有哪些

上海松江做网站的公司,企业推广平台有哪些,获取wordpress所有分类名字和id,国家新闻出版署官网论文查询老孟导读:刚开始看到这个功能的时候一定觉得so easy,开始的时候我也是这么觉得的,这还不简单,然而真正写的时候才发现并没有想象的那么简单。先上图,不上图你们都不想看,我难啊,到Github&#x…
03c7b1136ace6515606e0fdc18033c1f.png

老孟导读:刚开始看到这个功能的时候一定觉得so easy,开始的时候我也是这么觉得的,这还不简单,然而真正写的时候才发现并没有想象的那么简单。

先上图,不上图你们都不想看,我难啊,到Github:https://github.com/781238222/flutter-do 上给个小星星可还行,如果能fork一下,那更是感激不尽。

5bd82871aaef6e1227f35134ee5ec0dd.gif
b021c9394bc77fe68356a138a5c3204c.gif
903059770ce6df63f95232f59a0c0a8f.gif

言归正传,完成验证码输入框经历了4个阶段,虽然前3个尝试是失败的,但也想和大家分享下,避免大家再走弯路。

第一阶段:开始的时候,我认为直接修改TextField控件,改改外观就可以了,所以我就直接去改TextField的属性,研究了一遍,发现无法达到要求,系统提供的属性无法达到我的要求。

第二阶段:既然原生的TextField无法实现我的效果,那就重写一个(并不是全部重写,而是把源代码copy出来,修改控制外观的代码),于是我就去copy源代码了,可真正copy的时候发现TextField的关系比较复杂,并不是一个简单的StatefulWidget控件,而且需要计算字符的宽度,此方案虽然能实现,但想想就复杂,果断抛弃。

第三阶段:用6个TextField,每一个控制一个验证码,虽然样式及布局上很容易达到要求,但焦点控制问题非常致命,此方案也pass。

第四阶段:经过上面失败的经历,最后我才用如下方案:一个TextField用于输入,而验证码的显示使用Container,验证码覆盖在TextField之上,用户无法感知到TextField,这是目前为止我发现的最完美的方案。

焦点问题

正常情况下,出现验证码的页面会弹出键盘,此效果很好实现,指需给TextField指定自动获取焦点即可,代码如下:

TextField(    autofocus:true,    ...)

如果页面还有其他输入框,那么就不一定要获取焦点了,因此是否获取焦点需要交给用户来决定。

如果开始没有获取焦点就出现了一个问题,用户点击“验证码”的时候需要获取焦点,获取焦点方法如下:

GestureDetector(  onTap: () {    FocusScope.of(context).requestFocus(_focusNode);  },  ...)

给整个控件的外层添加点击事件,_focusNode为TextField的focusNode。

输入完成后,通常需要关闭键盘,即TextField失去焦点,失去焦点方法如下:

_focusNode.unfocus();

使用

使用非常简单,如下:

Container(  height: 45,  child: VerificationBox(),)

效果如下:

29d4723b9bf5fb5350af7ed627558140.png

设置验证码的数量,比如设置4个:

VerificationBox(  count: 4,)

效果如下:

18e7d21ee91e6e7f2ff29a1e93b36af9.png

设置样式,包括边框的颜色、宽度、圆角:

VerificationBox(  borderColor: Colors.lightBlue,  borderWidth: 3,  borderRadius: 50,)

效果如下:

29b84ce93789814f6beacbe9a4310c01.png

除了“盒子”样式,还支持下划线样式:

VerificationBox(  type: VerificationBoxItemType.underline,)

效果如下:

f5ca7fbd669a28fdab7ccc1663117772.png

设置数字的样式:

VerificationBox(  textStyle: TextStyle(color: Colors.lightBlue),)

效果如下:

836e4f3c86c163157adcb66542812324.png

显示光标,设置光标样式:

VerificationBox(  showCursor: true,  cursorWidth: 2,  cursorColor: Colors.red,  cursorIndent: 10,  cursorEndIndent: 10,)

效果如下:

5aa53ebfaface17d689dcc9d183d8558.gif

还可以设置光标为整个边框,如下:

VerificationBox(  focusBorderColor: Colors.lightBlue,)

效果如下:

238c281cfca5426e6cac5065c1f95c27.gif

终极大招,如果你觉得这个效果不好,你可以自定义decoration:

VerificationBox(    decoration: BoxDecoration(      image: DecorationImage(image: AssetImage('images/box.png')),    ),    textStyle: TextStyle(color: Colors.lightBlue),  ),)

效果如下:

e51a377e1f1fc7d0840ce28d1e40a6ca.gif

验证码输入完成后回调onSubmitted,用法如下:

VerificationBox(  onSubmitted: (value){    print('$value');  },)

输入完成后,默认键盘消失,设置为不消失,代码如下:

VerificationBox(  unfocus: false,)

交流

如果你对Flutter还有疑问或者技术方面的疑惑,欢迎加入Flutter交流群(微信:laomengit)。

同时也欢迎关注我的Flutter公众号【老孟程序员】,公众号首发Flutter的相关内容。

Flutter地址:http://laomengit.com 里面包含160多个组件的详细用法。

http://www.lbrq.cn/news/938125.html

相关文章:

  • 家用电脑和宽带做网站/torrentkitty磁力天堂
  • 洛阳市住房建设委员会网站/网络市场调研的方法
  • 免费html5网站源码/合肥网络营销公司
  • 网站建设用几级域名合适/广告推广计划
  • 用dw做网站的空格怎么打/seo产品推广
  • 大连网站建设优化/全网关键词云在哪里看
  • 如何提升网站的收录量/营销型网站建设解决方案
  • 北京 响应式网站建设/市场调研报告500字
  • wordpress keywords插件/专业seo培训
  • 无锡网站建设开发/软文写作平台发稿
  • 软件著作权转让/seo外贸推广
  • 一家专门做灯的网站/新闻头条今天最新消息
  • 用axure做网站原型的尺寸/免费seo教程资源
  • b站视频推广的方法有哪些/西安网络公司
  • 十里堡网站建设/系统优化软件
  • 做网站的一个月能赚多少钱/重庆百度快照优化排名
  • wordpress电影网站主题/线上商城推广软文
  • 罗湖网站建设深圳信科/宣城网站seo
  • 济宁网站开发招聘/班级优化大师的功能有哪些
  • 怎样做网站平台赚钱吗/西安网站优化培训
  • 合肥最好的网站建设公司排名/网站域名查询ip地址
  • 程序开发的难点/太原搜索引擎优化
  • 如何用网站首页做404/自己的网站怎么建立
  • wordpress戏/长清区seo网络优化软件
  • 公司公共邮箱怎么申请/seo解释
  • 网站url在哪优化/seo国外英文论坛
  • 彩票网站建设平台/什么是信息流广告
  • 西安做行业平台网站的公司/百度网盘帐号登录入口
  • 湖北外贸网站建设/网页制作咨询公司
  • 网站系统正在升级维护/凡科建站怎么收费
  • Android启动时间优化大全
  • 水稻调控组全景的综合绘制与建模揭示了复杂性状背后的调控架构
  • 高级 Tkinter:使用类
  • C++ TAP(基于任务的异步编程模式)
  • openmv特征点检测
  • 【MySQL】深入浅出事务:保证数据一致性的核心武器