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

聊城做网站的公司/公司网站制作流程

聊城做网站的公司,公司网站制作流程,大理如何做百度的网站,给菠菜网站做支付Transform可以在其子组件绘制时对其应用一些矩阵变换来实现一些特效。Matrix4是一个4D矩阵,通过它我们可以实现各种矩阵操作,下面是一个例子: Container(margin: EdgeInsets.only(top: 200,left: 20),color: Colors.black,child: Transform(…

Transform可以在其子组件绘制时对其应用一些矩阵变换来实现一些特效。Matrix4是一个4D矩阵,通过它我们可以实现各种矩阵操作,下面是一个例子:

Container(margin: EdgeInsets.only(top: 200,left: 20),color: Colors.black,child: Transform(alignment: Alignment.topRight,transform: Matrix4.skewY(0.4),child: Container(padding: EdgeInsets.all(10),color: Colors.deepOrange,child: Text('这个效果好看吧?'),),),)

运行效果如图:

平移 


Transform.translate接收一个offset参数,可以在绘制时沿xy轴对子组件平移指定的距离。

 DecoratedBox(decoration: const BoxDecoration(color: Colors.red),child: Transform.translate(offset: Offset(-20,-10),child: Text('平移效果',style: TextStyle(fontSize: 20,)),),)

旋转 


Transform.rotate可以对子组件进行旋转变换,如:

DecoratedBox(decoration: BoxDecoration(color: Colors.red),child: Transform.rotate(//旋转度数angle: math.pi/2,child: Text('Hello world'),),)

注意:要使用math.pi需先进行如下导包。

import 'dart:math' as math;  

效果如图:

缩放 


Transform.scale可以对子组件进行缩小或放大,如:

DecoratedBox(decoration: const BoxDecoration(color: Colors.red),child: Transform.scale(scale: 1.5,child: const Text('Hello World'),),)

注意

  • Transform的变换是应用在绘制阶段,而并不是应用在布局(layout)阶段,所以无论对子组件应用何种变化,其占用空间的大小和在屏幕上的位置都是固定不变的,因为这些是在布局阶段就确定的。下面我们具体说明:

     Row(mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[DecoratedBox(decoration:BoxDecoration(color: Colors.red),child: Transform.scale(scale: 1.5,child: Text("Hello world"))),Text("你好", style: TextStyle(color: Colors.green, fontSize: 18.0),)],
    )
    

    运行效果如图5-14所示:

  • 由于第一个Text应用变换(放大)后,其在绘制时会放大,但其占用的空间依然为红色部分,所以第二个Text会紧挨着红色部分,最终就会出现文字重合。

  • 由于矩阵变化只会作用在绘制阶段,所以在某些场景下,在UI需要变化时,可以直接通过矩阵变化来达到视觉上的UI改变,而不需要去重新触发build流程,这样会节省layout的开销,所以性能会比较好。如之前介绍的Flow组件,它内部就是用矩阵变换来更新UI,除此之外,Flutter的动画组件中也大量使用了Transform以提高性能。

 RotatedBox


RotatedBoxTransform.rotate功能相似,它们都可以对子组件进行旋转变换,但是有一点不同:RotatedBox的变换是在layout阶段,会影响在子组件的位置和大小。我们将上面介绍Transform.rotate时的示例改一下:

Row(mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[DecoratedBox(decoration: BoxDecoration(color: Colors.red),//将Transform.rotate换成RotatedBox  child: RotatedBox(quarterTurns: 1, //旋转90度(1/4圈)child: Text("Hello world"),),),Text("你好", style: TextStyle(color: Colors.green, fontSize: 18.0),)],
),

效果如图5-15所示:

由于RotatedBox是作用于layout阶段,所以子组件会旋转90度(而不只是绘制的内容),decoration会作用到子组件所占用的实际空间上,所以最终就是上图的效果,读者可以和前面Transform.rotate示例对比理解。

 

http://www.jmfq.cn/news/5079781.html

相关文章:

  • html5 手机 手机网站/长沙seo优化价格
  • 长宁网站推广公司/快速建站
  • 请假条模板/上海百度搜索排名优化
  • 章丘区网站建设/深圳外贸网站制作
  • 英国设计网站/网站不收录怎么办
  • 黑龙江新闻夜航/短视频seo是什么
  • 公司名字大全3个字/汕头seo网站推广
  • 合肥网站营销/百度百家
  • 个人网站开发用什么语言/网络营销有哪些特点
  • wordpress4.0.x/班级优化大师使用指南
  • pc端网站建设相关查阅资料/关键词搜索查找工具
  • 北京公司摇号需要哪些资格条件/福建搜索引擎优化
  • 购物网站建设带来的社会效益/开网站需要什么流程
  • 电气网站建设/南阳网站优化公司
  • wordpress 坏图片/seo教程书籍
  • 手机网站 后台/流量推广app
  • 做钢材的都用什么网站/营销推广怎么做
  • 网站建设发票税点/seo秘籍优化课程
  • 自学网站有哪些自学网/广告买卖网
  • ccd设计公司很厉害吗/汕头seo管理
  • 万网域名注册官网邮箱/河北seo推广公司
  • css样式模板网站/推广普通话的内容简短
  • 游戏充值网站怎么做/app推广是什么工作
  • 做网站公司怎么找客户/网络营销服务企业
  • 中国最近新闻大事件/鹤壁seo推广
  • 怎么做下载网站吗/手机上制作网页
  • 学院网站建设/免费推广公司
  • b2c电子商务网站怎么做/seo入门
  • 建站平台免代码/网站搭建模板
  • 杭州市拱墅区疫情最新消息/郑州seo顾问