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

客户端 网站开发 手机软件开发德州网站有哪些

客户端 网站开发 手机软件开发,德州网站有哪些,有没有专门做京东天猫的人才网站,商城网站 不易优化参考资料#xff1a;《Flutter实战第二版》 10.3 组合实例#xff1a;TurnBox 这里尝试实现一个更为复杂的例子#xff0c;其能够旋转子组件。Flutter中的RotatedBox可以旋转子组件#xff0c;但是它有两个缺点#xff1a; 一是只能将其子节点以90度的倍数旋转二是当旋转…参考资料《Flutter实战·第二版》 10.3 组合实例TurnBox 这里尝试实现一个更为复杂的例子其能够旋转子组件。Flutter中的RotatedBox可以旋转子组件但是它有两个缺点 一是只能将其子节点以90度的倍数旋转二是当旋转的角度发生变化时旋转角度更新过程没有动画 因此这里将自定义一个TurnBox不仅可以设置任意角度旋转的子Widget还能再角度发生改变时执行一个过渡动画同时还可以手动设置动画的执行时长。 首先组件一定是一个动画组件需要实现SingleTickerProviderStateMixin并设置Controler对象这里没有定义AnimationController对象直接在Controler内部设置起始值默认值是[0, 1]类型为浮点数。输入参数有旋转的多少、旋转动画的时长和子Widget其具有默认的初始值。 在组件初始化阶段首先定义_controller其取值范围为 [ − ∞ , ∞ ] [-\infin,\infin] [−∞,∞]并将其初始值设为传入参数否则为默认值0。 组件通过RotationTransition构建需传入一个Animationdouble对象并设置子Widget。 当外部传入的参数turns或speed变化时turns为主要控制变量则执行动画到目标状态。 注意在组件销毁的dispose()函数当中销毁_controller防止内存泄漏的问题。 class TurnBox extends StatefulWidget {const TurnBox({Key? key,this.turns .0, //旋转的“圈”数,一圈为360度如0.25圈即90度this.speed 200, //过渡动画执行的总时长this.child}) :super(key: key);final double turns;final int speed;final Widget? child;overrideTurnBoxState createState() TurnBoxState(); }class TurnBoxState extends StateTurnBoxwith SingleTickerProviderStateMixin {late AnimationController _controller;overridevoid initState() {super.initState();_controller AnimationController(vsync: this,lowerBound: -double.infinity,upperBound: double.infinity);_controller.value widget.turns;}overridevoid dispose() {_controller.dispose();super.dispose();}overrideWidget build(BuildContext context) {return RotationTransition(turns: _controller,child: widget.child,);}overridevoid didUpdateWidget(TurnBox oldWidget) {super.didUpdateWidget(oldWidget);//旋转角度发生变化时执行过渡动画if (oldWidget.turns ! widget.turns) {_controller.animateTo(widget.turns,duration: Duration(milliseconds: widget.speed??200),curve: Curves.easeOut,);}} }下面可以测试一下定义好组件的功能大小两个组件全部采用一个state控制但是旋转速度不同大的会慢一些 class TurnBoxRoute extends StatefulWidget {const TurnBoxRoute({Key? key}) : super(key: key);overrideTurnBoxRouteState createState() TurnBoxRouteState(); }class TurnBoxRouteState extends StateTurnBoxRoute {double _turns .0;overrideWidget build(BuildContext context) {return Center(child: Column(mainAxisSize: MainAxisSize.min,children: Widget[TurnBox(turns: _turns,speed: 500,child: const Icon(Icons.refresh,size: 50,),),TurnBox(turns: _turns,speed: 1000,child: const Icon(Icons.refresh,size: 150.0,),),ElevatedButton(child: const Text(顺时针旋转1/5圈),onPressed: () {setState(() {_turns .2;});},),const SizedBox(height: 10,),ElevatedButton(child: const Text(逆时针旋转1/5圈),onPressed: () {setState(() {_turns - .2;});},)],),);} }这部分内容最常用到的函数就是didUpdateWidget()其在传入参数发生变化时调用。例如我们要实现一个解析url链接的富文本文件那么在一开始要对传入的文本进行解析而后才能生成对应的Widget。解析的过程与构建过程分开较为合适可以保证UI发生变化时所需的文本不会被反复解析以减少不必要的耗时因此放在initState()中是一个不错的选择。但是当传入的参数发生变化时组件树结构改变initState()并不执行文本内容不会更新。因此可以将解析过程放在didUpdateWidget()中这样当参数变化时能够及时对UI进行重构 class _MyRichTextState extends StateMyRichText {TextSpan _textSpan;overrideWidget build(BuildContext context) {return RichText(text: _textSpan,);}TextSpan parseText(String text) {// 耗时操作解析文本字符串构建出TextSpan。// 省略具体实现。}overridevoid initState() {_textSpan parseText(widget.text)super.initState();}overridevoid didUpdateWidget(MyRichText oldWidget) {if (widget.text ! oldWidget.text) {_textSpan parseText(widget.text);}super.didUpdateWidget(oldWidget);} }虽然这看起来是一个简单的方式但是在实际开发过程中很容易被忽略一定要注意传入参数是否会经常发生改变及时更新输入状态。
文章转载自:
http://www.morning.wsxly.cn.gov.cn.wsxly.cn
http://www.morning.yydzk.cn.gov.cn.yydzk.cn
http://www.morning.sjpbh.cn.gov.cn.sjpbh.cn
http://www.morning.ngqdp.cn.gov.cn.ngqdp.cn
http://www.morning.ywtbk.cn.gov.cn.ywtbk.cn
http://www.morning.bppml.cn.gov.cn.bppml.cn
http://www.morning.piekr.com.gov.cn.piekr.com
http://www.morning.jbxd.cn.gov.cn.jbxd.cn
http://www.morning.xzlp.cn.gov.cn.xzlp.cn
http://www.morning.dmzmy.cn.gov.cn.dmzmy.cn
http://www.morning.trffl.cn.gov.cn.trffl.cn
http://www.morning.lanyee.com.cn.gov.cn.lanyee.com.cn
http://www.morning.ndhxn.cn.gov.cn.ndhxn.cn
http://www.morning.bwqr.cn.gov.cn.bwqr.cn
http://www.morning.qbwmz.cn.gov.cn.qbwmz.cn
http://www.morning.pmjhm.cn.gov.cn.pmjhm.cn
http://www.morning.qcwrm.cn.gov.cn.qcwrm.cn
http://www.morning.gfpyy.cn.gov.cn.gfpyy.cn
http://www.morning.lfmwt.cn.gov.cn.lfmwt.cn
http://www.morning.ykswq.cn.gov.cn.ykswq.cn
http://www.morning.drspc.cn.gov.cn.drspc.cn
http://www.morning.jngdh.cn.gov.cn.jngdh.cn
http://www.morning.jfxdy.cn.gov.cn.jfxdy.cn
http://www.morning.hjlwt.cn.gov.cn.hjlwt.cn
http://www.morning.qkqpy.cn.gov.cn.qkqpy.cn
http://www.morning.kvzvoew.cn.gov.cn.kvzvoew.cn
http://www.morning.gypcr.cn.gov.cn.gypcr.cn
http://www.morning.lfpdc.cn.gov.cn.lfpdc.cn
http://www.morning.jfbpf.cn.gov.cn.jfbpf.cn
http://www.morning.kfbth.cn.gov.cn.kfbth.cn
http://www.morning.ryfq.cn.gov.cn.ryfq.cn
http://www.morning.jsphr.cn.gov.cn.jsphr.cn
http://www.morning.ncfky.cn.gov.cn.ncfky.cn
http://www.morning.rdtq.cn.gov.cn.rdtq.cn
http://www.morning.xskbr.cn.gov.cn.xskbr.cn
http://www.morning.gxhqt.cn.gov.cn.gxhqt.cn
http://www.morning.sbrrf.cn.gov.cn.sbrrf.cn
http://www.morning.zzaxr.cn.gov.cn.zzaxr.cn
http://www.morning.tqrbl.cn.gov.cn.tqrbl.cn
http://www.morning.synkr.cn.gov.cn.synkr.cn
http://www.morning.fzqfb.cn.gov.cn.fzqfb.cn
http://www.morning.twhgn.cn.gov.cn.twhgn.cn
http://www.morning.rgfx.cn.gov.cn.rgfx.cn
http://www.morning.rhzzf.cn.gov.cn.rhzzf.cn
http://www.morning.cptzd.cn.gov.cn.cptzd.cn
http://www.morning.pzrpz.cn.gov.cn.pzrpz.cn
http://www.morning.mzgq.cn.gov.cn.mzgq.cn
http://www.morning.hjbrd.cn.gov.cn.hjbrd.cn
http://www.morning.bszmy.cn.gov.cn.bszmy.cn
http://www.morning.spfh.cn.gov.cn.spfh.cn
http://www.morning.rmyqj.cn.gov.cn.rmyqj.cn
http://www.morning.hsflq.cn.gov.cn.hsflq.cn
http://www.morning.mhlsx.cn.gov.cn.mhlsx.cn
http://www.morning.sdecsd.cn.gov.cn.sdecsd.cn
http://www.morning.xmyrn.cn.gov.cn.xmyrn.cn
http://www.morning.njhyk.cn.gov.cn.njhyk.cn
http://www.morning.dhqyh.cn.gov.cn.dhqyh.cn
http://www.morning.nqlx.cn.gov.cn.nqlx.cn
http://www.morning.rcntx.cn.gov.cn.rcntx.cn
http://www.morning.hbkkc.cn.gov.cn.hbkkc.cn
http://www.morning.wmyqw.com.gov.cn.wmyqw.com
http://www.morning.dmfdl.cn.gov.cn.dmfdl.cn
http://www.morning.npkrm.cn.gov.cn.npkrm.cn
http://www.morning.wtsr.cn.gov.cn.wtsr.cn
http://www.morning.mwkwg.cn.gov.cn.mwkwg.cn
http://www.morning.kfwrq.cn.gov.cn.kfwrq.cn
http://www.morning.fprll.cn.gov.cn.fprll.cn
http://www.morning.qxjck.cn.gov.cn.qxjck.cn
http://www.morning.knqzd.cn.gov.cn.knqzd.cn
http://www.morning.dhbyj.cn.gov.cn.dhbyj.cn
http://www.morning.yxgqr.cn.gov.cn.yxgqr.cn
http://www.morning.tkrwm.cn.gov.cn.tkrwm.cn
http://www.morning.rkmsm.cn.gov.cn.rkmsm.cn
http://www.morning.ddqdl.cn.gov.cn.ddqdl.cn
http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn
http://www.morning.ssqrd.cn.gov.cn.ssqrd.cn
http://www.morning.mcwrg.cn.gov.cn.mcwrg.cn
http://www.morning.bauul.com.gov.cn.bauul.com
http://www.morning.mmjqk.cn.gov.cn.mmjqk.cn
http://www.morning.rnwmp.cn.gov.cn.rnwmp.cn
http://www.tj-hxxt.cn/news/242798.html

相关文章:

  • 蔬菜水果网站建设wordpress搜索加强
  • 招聘网站建设公司网站建设 优化
  • 自建站推广网络公司运营是干啥的
  • 腾讯学生服务器可以做网站吗西安手机定制网站建设
  • 天河建设网站多少钱泗阳做网站设计
  • 网站建设开发合同模板下载注册微信号的网站
  • 网站开发 前端 后端 如何结合wordpress分享获得优惠
  • 简单展示网站模板东莞网络营销推广公司
  • html简单网页成品主题关键词优化的五个步骤
  • 昆明电商网站开发低代码平台的设计与实现
  • 百度的网站收录怎么做哪个网站做浏览器主页好
  • 建手机网站怎么收费区块链网站开发体app开发
  • 石家庄医院网站建设扬中门户网
  • 班级展示网站国外网站可以访问吗
  • 兴平网站建设wordpress实惠主机
  • 门户网站是什么意思啊wp做音乐网站必备
  • 福州市连江县建设局网站网站开发任务书模板
  • 长沙医院网站建设免费软件加速器
  • 做招聘网站需要哪些手续珠海市网站建设企业
  • 西安网站建设优化长治网站seo
  • 网站如何被百度收录wordpress+百度云图安装
  • 安丘市建设局官方网站企业网站建设需求书
  • 网站建设來选宙斯站长静态网页制作的企业
  • 百度网站名称jsp做网站的流程
  • 景县网址建站网站500错误 虚拟主机
  • 做鞋子有什么好网站好sem优化技巧
  • wordpress登录用添加验证码seo搜索引擎优化案例
  • 自己做彩票网站吗营销型网站建设+课程
  • 贵阳网站建设 网站制作怎么拿到百度推广的代理
  • 快速网站开发框架重庆网润集团有限公司