flutter 将继承的 StatelessWidget 改为 State 的

draft: false date: 2018-12-09 17:02:32 cover: /images/avatar.jpeg tags: - flutter preview:


一些默认的 widget 是继承自 StatelessWidget, 比如 ListTile

要将其弄成有状态的, 要建立以下两个 class

class ListTileFul extends StatefulWidget {
  @override
  createState() => new ListTileFulState();
}

class ListTileFulState extends State<ListTileFul> {
  bool like = false;

  @override
  Widget build(BuildContext context) {
    return new ListTile(
        title: new Text((new WordPair.random()).asPascalCase),
        trailing: new Icon(
          like ? Icons.favorite : Icons.favorite_border,
          color: like ? Colors.red : null,
        ),
        onTap: () {
          setState(() => like = !like);
        });
  }
}

继承自 StatefulWidget 弄一个 class1, 只需要实现 createState 方法, 这个方法就是返回class2的实例.

class2 是一个继承自状态类的类, 并与 class1 混合(Mixin) , 混合的相关概念在这里