首页 > 解决方案 > 为什么我不能建立列表?

问题描述

我试图通过从数据库中提取的数据来构建一个列表。但我看不到任何东西,我得到一个白屏。我认为我提取的数据重叠并阻止了构建列表,但我找不到错误在哪里。我正在尝试做的是将卡片除以 2 的行,然后将我从卡片左侧的数据库中提取的数据写入。在右侧写入其他数据。

@override
  Widget build(BuildContext context) {
    return Scaffold(
      body: FutureBuilder(
          future: _db.getEventsByOrder(widget.index),
          builder: (context, snapshot) {
            if (snapshot.data == null) {
              return Container(
                child: Center(child: Text("Loading.....")),
              );
            } else {
              return ListView.builder(
                  itemCount: snapshot.data.length,
                  itemBuilder: (BuildContext context, int index) {
                    return Container(
                      padding: const EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 16.0),
                      child: Card(
                        elevation: 25,
                        child: Padding(
                          padding: const EdgeInsets.all(24.0),
                          child: Row(
                            children: <Widget>[
                              Column(
                                mainAxisSize: MainAxisSize.min,
                                  mainAxisAlignment:
                                      MainAxisAlignment.spaceBetween,
                                  children: <Widget>[
                                    Expanded(
                                        child: Text(
                                      '${snapshot.data[index].title}',
                                      maxLines: 1,
                                      overflow: TextOverflow.ellipsis,
                                      style: TextStyle(
                                          fontSize: 28, fontFamily: 'Arvo'),
                                    )),
                                    Text(
                                      "${snapshot.data[index].date} - ${snapshot.data[index].startTime == "null" ? " Tüm gün" : "${snapshot.data[index].startTime} - ${snapshot.data[index].finishTime}"}",
                                      style: new TextStyle(
                                          fontSize: 15, fontFamily: 'Arvo'),
                                    ),
                                    Expanded(
                                      child: Text(snapshot.data[index].desc,
                                          maxLines: 2,
                                          overflow: TextOverflow.ellipsis),
                                    ),
                                  ]),
                              Column(
                                mainAxisSize: MainAxisSize.min,
                                children: <Widget>[
                                  Container(
                                      child: DropDown(Event(
                                          id: snapshot.data[index].id,
                                          title: snapshot.data[index].title,
                                                         date: snapshot.data[index].date,
                                          startTime:
                                              snapshot.data[index].startTime,
                                          finishTime:
                                              snapshot.data[index].finishTime,
                                          desc: snapshot.data[index].desc,
                                          isActive:
                                              snapshot.data[index].isActive,
                                          choice:
                                              snapshot.data[index].choice))),

                                  Container(
                                    padding: EdgeInsets.only(top: 8.0),
                                    height: 100,
                                    width: 100,
                                    decoration: BoxDecoration(
                                        borderRadius: BorderRadius.circular(8.0),
                                        color: Colors.blue),
                                    child: Text(
                                      "${DateTime.parse(snapshot.data[index].date).difference(DateTime.now()).inDays}\nKalan Gün",
                                      textAlign: TextAlign.center,
                                      style: TextStyle(fontSize: 25),
                                    ),
                                  ),

                                ],
                                
                              ),
                              
                            ],
                          ),
                        ),
                      ),
                    );
                  });
            }
          }),
    );
  }

标签: flutter

解决方案


您只需要调整尺寸。

@override
  Widget build(BuildContext context) {
    return Scaffold(
      body: FutureBuilder(
          future: _db.getEventsByOrder(widget.index),
          builder: (context, snapshot) {
            if (snapshot.data == null) {
              return Container(
                child: Center(child: Text("Loading.....")),
              );
            } else {
              return ListView.builder(
                  itemCount: snapshot.data.length,
                  itemBuilder: (BuildContext context, int index) {
                    return Container(
                      padding: const EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 16.0),
                      child: Card(
                        elevation: 25,
                        child: Container(
                          height: MediaQuery.of(context).size.height/4,
                          child: Row(
                            mainAxisSize: MainAxisSize.max,
                            mainAxisAlignment: MainAxisAlignment.spaceAround,
                            children: <Widget>[
                              Container(
                                width: MediaQuery.of(context).size.width / 2 - 16,
                                child: Column(
                                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                                  children: <Widget>[
                                    Text(
                                      '${snapshot.data[index].title}',
                                      maxLines: 1,
                                      overflow: TextOverflow.ellipsis,
                                      style: TextStyle(fontSize: 28),
                                    ),
                                    Text(
                                      "${snapshot.data[index].date} - ${snapshot.data[index].startTime == "null" ? " Tüm gün" : "${snapshot.data[index].startTime} - ${snapshot.data[index].finishTime}"}",
                                      style: TextStyle(fontSize: 15),
                                    ),
                                    Text(
                                      snapshot.data[index].desc,
                                      maxLines: 2,
                                      overflow: TextOverflow.ellipsis,
                                    ),
                                  ],
                                ),
                              ),
                              Container(
                                width: MediaQuery.of(context).size.width / 2 - 32,
                                child: Column(
                                  children: <Widget>[
                                    Container(
                                      width: MediaQuery.of(context).size.width / 4 - 8,
                                      child: DropDown(Event(
                                          id: snapshot.data[index].id,
                                          title: snapshot.data[index].title,
                                          date: snapshot.data[index].date,
                                          startTime: snapshot.data[index].startTime,
                                          finishTime: snapshot.data[index].finishTime,
                                          desc: snapshot.data[index].desc,
                                          isActive: snapshot.data[index].isActive,
                                          choice: snapshot.data[index].choice)),
                                    ),
                      
                            ],
                          ),
                        ),
                      ),
                    );
                  });
            }
          }),
    );
  }

推荐阅读