Flutter-有状态的StatefulWidget

在前端数据的变化界面的更新是必不可少的。不是一成不变的。
而在flutter中StatelessWidget通常用来展示哪些数据固定不变的,如果数据会发生改变,我们使用StatefulWidget;比如默认的界面是加减的动态变化。我们来学习一下加减的简单变化,一步一步的认识StatefulWidget。
1.首先贴代码

main(List<String> args) {
  runApp(Myapp());
}

class Myapp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text("demo"),
        ),
        body: MyCounWidget(),
      ),
    );
  }
}

class MyCounWidget extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {

    return MyCounState();
  }

}

class MyCounState extends State<MyCounWidget>{
  int counter = 0;
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget> [
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              RaisedButton(
                  color: Colors.blue,
                  child: Text("+1", style: TextStyle(fontSize: 18, color: Colors.white),),
                  onPressed: (){
               

 setState(() {
                  counter++;
                });
              }),
              RaisedButton(
                  color: Colors.redAccent,
                  child: Text("-1", style: TextStyle(fontSize: 18, color: Colors.white),),
                  onPressed: (){
                    setState(() {
                      counter--;
                    });
                  })
            ],
          ),
          Text("展示计数:$counter", style: TextStyle(fontSize: 30),),
        ],
      ),

    );
  }
}

创建MyCounWidget 继承StatefulWidget,将创建的MyCounState返回。State主要是保存状态。纪录当前的状态。
2,在MyCounState中用到了row,RaisedButton小部件。

扩展:Column和Row:
Column 垂直方向布局时
Row 水平方向布局时
RaiseButton 可以创建一个按钮,并且其中有一个onPress属性是传入一个回调函数,当按钮点击时被回调;(可以理解认为触发事件)例如:
在点击加减的时候界面是不会发生改变而这个时候在回调中加上

 setState(() {
      counter++;
   });

可以理解为,发生改变,重新构建界面中的Widget;setState方法起作用。

最简单的一个更改完成。笔记,勿喷。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值