Flutter的盒子约束

由Expanded widget引发的思考

很常见的一种布局方式:Column的子widget中包含ListView

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
ListView.builder(
itemCount: 30,
itemBuilder: (BuildContext context, int index) {
return ListTile(
title: Text("标题$index"),
);
},
),
],
);
}

当然这样仅仅这样写,在手机屏幕上会看到一片空白,如果是debug模式,则会在控制台中看到如下报错

Read More

闪屏(启动)页面的实现

很多app启动之后都会出现一个splash启动界面,显示广告信息或产品的LOGO、公司的LOGO或者开发者信息。如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥的时间。

那么,我们使用Flutter开发应用该怎么实现闪屏页面呢?

Read More

Flutter状态管理之Provider的理解使用

一、为什么需要Provider管理状态

数据变化,数据共享,需要Provider

  • Flutter的代码,是响应式/声明式的。以前安卓/iOS的代码,是命令式的。
  • 响应式的代码,基本都需要进行状态管理,也可以理解为数据共享。
  • 界面、数据是变化的,就需要管理的,简单的直接在StatefulWidget进行管理就好,复杂的就是用Provider之类来管理。

    Read More