1.Flutter 提供了两个基本的按钮控件:FlatButton 和 RaisedButton. 这个主要是默认样式的不同,使用的时候都能自己进行设置。
2.Expand 控件,作用相当于weight
可以占据所能占据的空间。如果有多个Expand控件,可以使用flex进行平分剩余空间。

3.Stack 布局一个控件叠在另一个控件的上面。使用 alignment 进行控制对齐的位置。

4.Column ,Row进行横向和纵向的widget分布
可以设置属性,实现widget的布局
mainAxisAlignment: MainAxisAlignment.center
一共有六种情况
MainAxisAlignment.start
MainAxisAlignment.end
MainAxisAlignment.center
MainAxisAlignment.spaceBetween 空余空间在中间
MainAxisAlignment.spaceAround 空余空间在两边
MainAxisAlignment.spaceEvenly 平均分配空间

  1. 水波纹效果,使用的是 InkWell

6.支持进入销毁一个页面的时候返回数据
Navigator.pop(context, ‘message from second screen’);
由于打开页面是异步的,页面的结果通过一个 Future 来返回:

onPressed: () async {
// Navigator.push 会返回一个 Future
var msg = await Navigator.push(
context,
MaterialPageRoute(builder: (_) => SecondScreen())
);
debugPrint(‘msg = $msg’);
}

可以在 MaterialApp 里设置好每个 route 对应的页面,然后使用 Navigator.pushNamed(context, routeName) 来打开它们:

MaterialApp(
// 从名字叫做 ‘/’ 的 route 开始(也就是 home)
initialRoute: ‘/’,
routes: {
‘/’: (context) => HomeScreen(),
‘/about’: (context) => AboutScreen(),
},
);

7.路由跳转携带数据
flutter细节总结1
返回带回数据
flutter细节总结1

8.线性的动画
flutter细节总结1
9.非线性的动画使用CurvedAnimation
flutter细节总结1
10.自定义的动画,通过使用Tween()进行计算某个长度的回调,获取到其中的每个区间值left,然后设置widget的padding或是margin值进行动画的运动。
flutter细节总结1

相关文章: