Flutter 基础篇(十九) —— 变换

}

}

上面例子中的 Matrix4 是一个 4D 矩阵,通过它可以实现各种矩阵操作。

平移


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

class ConstrainedWidget extends StatelessWidget{

@override

Widget build(BuildContext context) {

return DecoratedBox(

decoration: BoxDecoration(color: Colors.pink),

//默认原点为左上角,左移20,上移10

child: Transform.translate(

offset: Offset(-20, -10),

child: Text(‘jonas’),

),

);

}

}

旋转


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

class ConstrainedWidget extends StatelessWidget{

@override

Widget build(BuildContext context) {

return DecoratedBox(

decoration: BoxDecoration(color: Colors.pink),

//顺时针转90°

child: Transform.rotate(

angle: math.pi/2,

child: Text(‘jonas’),

),

);

}

}

注意:需要引入 import 'dart:math' as math;

缩放


Transform.scale 可以对子组件进行缩放,示例:

class ConstrainedWidget extends StatelessWidget{

@override

Widget build(BuildContext context) {

return DecoratedBox(

decoration: BoxDecoration(color: Colors.pink),

//方法1.5倍

child: Transform.scale(

scale: 1.5,

child: Text(‘jonas’),

),

);

}

}

注意:Transform 的变换是应用在绘制阶段的,而不是应用在布局阶段,所以无论对子组件应用何种变化,其占用空间的大小和在屏幕上的位置都是固定不变的,因为这些事在布局阶段就已经确定了。

如何成为Android高级架构师!

架构师必须具备抽象思维和分析的能力,这是你进行系统分析和系统分解的基本素质。只有具备这样的能力,架构师才能看清系统的整体,掌控全局,这也是架构师大局观的形成基础。 你如何具备这种能力呢?一是来自于经验,二是来自于学习。

架构师不仅要具备在问题领域上的经验,也需要具备在软件工程领域内的经验。也就是说,架构师必须能够准确得理解需求,然后用软件工程的思想,把需求转化和分解成可用计算机语言实现的程度。经验的积累是需要一个时间过程的,这个过程谁也帮不了你,是需要你去经历的。

但是,如果你有意识地去培养,不断吸取前人的经验的话,还是可以缩短这个周期的。这也是我整理架构师进阶此系列的始动力之一。


成为Android架构师必备知识技能

对应导图的学习笔记(由阿里P8大牛手写,我负责整理成PDF笔记)

部分内容展示

《设计思想解读开源框架》

  • 目录
  • 热修复设计
  • 插件化框架设计

    《360°全方面性能优化》
  • 设计思想与代码质量优化
  • 程序性能优化

7)]
《360°全方面性能优化》
[外链图片转存中…(img-6AaWI9gw-1720087247397)]

  • 设计思想与代码质量优化
    [外链图片转存中…(img-eDflwYGe-1720087247398)]
  • 程序性能优化
    [外链图片转存中…(img-oC4Hg4eD-1720087247398)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值