首页 > 解决方案 > 行内的 FutureBuilder 颤动

问题描述

各位朋友,我正在学习用 Flutter 构建应用程序。我有一个 FutureBuilder 小部件,它从服务器检索数据并显示它们。这是代码:

FutureBuilder(
                                future: fetchBoxes(),
                                builder: (BuildContext context,
                                    AsyncSnapshot<List<Box>> snapshot) {
                                  switch (snapshot.connectionState) {
                                    case ConnectionState.none:
                                      return Text('no connection');
                                    case ConnectionState.active:
                                    case ConnectionState.waiting:
                                      return Center(
                                        child: CircularProgressIndicator(),
                                      );
                                      break;
                                    case ConnectionState.done:
                                      if (snapshot.hasError) {
                                        return Text('error');
                                      } else {
                                        if (snapshot.hasData) {
                                          return ListView.builder(
                                            shrinkWrap: true,
                                            itemCount: snapshot.data.length,
                                            itemBuilder: (BuildContext context,
                                                int position) {
                                              /*  String price =
                                              snapshot.data[position]['price'];*/
                                              /* print(snapshot
                                                  .data[1].user_id);*/
                                              //  inspect(snapshot.data);
                                              return Card();

我想在这个小部件中实现它以获得可滚动的小部件:我的代码:

@override
  Widget build(BuildContext context) {
    return SafeArea(
        minimum: const EdgeInsets.only(
            top: 20.0, right: 5.0, left: 5.0, bottom: 10.0),
        child: Center(
            child: Scaffold(
                backgroundColor: Color(0xFFF6F7F8),
                body: Stack(
                  children: [
                    Container(
                      child: SingleChildScrollView(
                        child: Column(
                          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                          children: [
                            Row(
                              mainAxisAlignment: MainAxisAlignment.start,
                              children: [
                                Container(
                                  padding: EdgeInsets.all(10),
                                  child: ElevatedButton.icon(
                                    style: ElevatedButton.styleFrom(
                                        primary: KBlue,
                                        shape: RoundedRectangleBorder(
                                            borderRadius:
                                                BorderRadius.circular(30))),
                                    onPressed: () {
                                      showDialog(
                                        context: context,
                                        builder: (BuildContext context) =>
                                            _addNewBox(context),
                                      );
                                    },
                                    label: Text(
                                      'Ajouter un nouveau box',
                                      style: TextStyle(color: Colors.white),
                                    ),
                                    icon: Icon(
                                      CommunityMaterialIcons.plus,
                                      color: Colors.white,
                                    ),
                                  ),
                );

如何正确实现可滚动小部件?

标签: flutterdart

解决方案


推荐阅读