第二次尝试Flutter
前言 学了几天flutter,感觉写起来还是很香的,比原生开发速度快很多,不过以前没接触过安卓开发,思维还在Web开发上,记录一下 布局 一般是使用Column和Row以及Container来布局比较多,还有Expanded,类似与flex: 1这个效果,能把剩余的空间补充满。 在使用的时候还遇到了按钮宽度需要100%的情况,2.0废弃了1.0一些组件,按钮一般使用ElevatedButton,但是没法设置宽高。网上查了一下用SizedBox来当它的父容器,这样它就会跟着父容器的宽高走了,需要宽度100%的话就是double.infinity 如何设置width:100% 目前发现有double.infinity和MediaQuery.of(context).size.width。后续发现的话继续补充 路由 路由的话一般定义在MaterialApp里面,如下: return MaterialApp( title: 'title', initialRoute: "/home", // 默认的路由 routes: { "/home": (context) => MyHome(), // 每个路由需要默认传参context "/login": (context) => MyLogin() }, ); 导航的话常用以下几个 Navigator.pushNamed(context, "/login"); // 跳转到/login页面 Navigator.pop(context); // 返回上一级,可传第二个参数携带回上一级 Navigator.pushReplacementNamed(context, "/login"); //重定向至/login页面,就没法返回到上一级页面了 父子组件传参 父组件调用子组件 // 定义一个全局key GlobalKey<_MyMapState> mapKey = GlobalKey(); // 子组件 class MyMap extends StatefulWidget { MyMap({Key key}) : super(key: key); @override _MyMapState createState() => _MyMapState(); } class _MyMapState extends State<MyMap> { // ....