美文网首页
19.ListView.build动态数据

19.ListView.build动态数据

作者: 凯司机 | 来源:发表于2020-06-10 15:30 被阅读0次

    在之前,我们搞了一个yz.json数据,我们现在动态的来通过JSON数据展示一个列表。

    思考:这个时候是否依然可以使用StatelessWidget:

    答案:不可以,因为当前我们的数据是异步加载的,刚开始界面并不会展示数据(没有数据),后面从JSON中加载出来数据(有数据)后,再次展示加载的数据。

    这里是有状态的变化的,从无数据,到有数据的变化。

    这个时候,我们需要使用StatefulWidget来管理组件。

    展示代码如下:

    classMyHomeBodyextendsStatefulWidget{

      @override

      State<StatefulWidget> createState() {

        return MyHomeBodyState();

      }

    }

    classMyHomeBodyStateextendsState{

      List<Anchor> anchors = [];

      // 在初始化状态的方法中加载数据

      @override

      void initState() {

        getAnchors().then((anchors) {

          setState(() {

            this.anchors = anchors;

          });

        });

        super.initState();

      }

      @override

      Widget build(BuildContext context) {

        return ListView.builder(

          itemBuilder: (BuildContext context, int index) {

            return Padding(

              padding: EdgeInsets.all(8),

              child: Column(

                crossAxisAlignment: CrossAxisAlignment.start,

                children: <Widget>[

                  Image.network(

                    anchors[index].imageUrl,

                    fit: BoxFit.fitWidth,

                    width: MediaQuery.of(context).size.width,

                  ),

                  SizedBox(height: 8),

                  Text(anchors[index].nickname, style: TextStyle(fontSize: 20),),

                  SizedBox(height: 5),

                  Text(anchors[index].roomName)

                ],

              ),

            );

          },

        );

      }

    }

    相关文章

      网友评论

          本文标题:19.ListView.build动态数据

          本文链接:https://www.haomeiwen.com/subject/gulptktx.html