快乐学习 一个网站喵查铺子(catpuzi.com)全搞定~

Widget管理自己的State

1.自定义Widget状态

Widget管理自己的State

class TapboxA extends StatefulWidget {

  TapboxA({Key key}) : super(key: key);



  @override

  State createState() => _TapboxAState();

}



class _TapboxAState extends State {

  bool _active = false;



  //2.在_handleTap中触发setState方法,重新绘制Widget

  void _handleTap() {

    setState(() {

      _active = !_active;

    });

  }



  @override

  Widget build(BuildContext context) {

    return GestureDetector(

      //1.点击之后触发Widget的onTap事件,在onTap中执行_handleTap方法

      onTap: _handleTap,

      child: Container(

        width: 200,

        height: 200,

        decoration: BoxDecoration(

          color: _active ? Colors.lightGreen[700] : Colors.green[600],

        ),

        child: Text(

          _active ? "active" : "Inactive",

          style: TextStyle(

            fontSize: 32,

            color: Colors.white,

          ),

        ),

      ),

    );

  }

}

1、点击之后触发GestureDetector中的onTap方法,在此方法中执行_handleTap;

2、_handleTap方法执行setState触发Widget重绘。

喜欢 (0)
关于作者: