美文网首页
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