状态(State)管理

2020-10-19  本文已影响0人  一个半吊子工程师

StatefulWidget的状态应该被谁管理

取决于实际情况

管理状态的最常见的方法:

如何决定使用哪种管理方法?下面是官方给出的一些原则可以帮助你做决定:

Widget管理自己的状态。

class TapboxA extends StatefulWidget {
  TapboxA({Key key}) : super(key: key);

  @override
  _TapboxAState createState() => new _TapboxAState();
}

class _TapboxAState extends State<TapboxA> {
  bool _active = false;

  void _handleTap() {
    setState(() {
      _active = !_active;
    });
  }

  Widget build(BuildContext context) {
    return new GestureDetector(
      onTap: _handleTap,
      child: new Container(
        child: new Center(
          child: new Text(
            _active ? 'Active' : 'Inactive',
            style: new TextStyle(fontSize: 32.0, color: Colors.white),
          ),
        ),
        width: 200.0,
        height: 200.0,
        decoration: new BoxDecoration(
          color: _active ? Colors.lightGreen[700] : Colors.grey[600],
        ),
      ),
    );
  }
}
上一篇下一篇

猜你喜欢

热点阅读