【问题标题】:Error in ListView in SimpleDialog in FlutterFlutter中SimpleDialog中ListView的错误
【发布时间】:2022-11-11 01:47:35
【问题描述】:

我想在 SimpleDialog 中显示从我的 api 获得的 ListView。但它会抛出这个错误

在 performLayout() 期间引发了以下断言: 'package:flutter/src/rendering/viewport.dart':断言失败:第 1895 行 pos 16:'constraints.hasBoundedHeight':不正确。 相关的导致错误的小部件是 列表显示

我的简单对话框

showDialog(
  context: context,
   builder: (BuildContext context) {
    return SimpleDialog(
    contentPadding: EdgeInsets.zero,
     children: [
        Column(
         mainAxisSize:MainAxisSize.min,
             children: [
                Container(
                  child: Column(
                      children: [
                          const Text('Athletes'),
                          FutureBuilder<List<Presence>>(
                         future: getPresencesByAthleteId(_athlete[i].department!.id, widget._team.teamKey!.teamId, _athlete[i].id, context),                                                                 
                       builder: (BuildContext context, AsyncSnapshot snapshot) {                                                                                
                      if (snapshot.hasData) {                                                                         
                       return Container(
                       height: 300,
                       width: double.maxFinite,
                       child: ListView.builder(
                       shrinkWrap: true,
                       primary: true,
                       physics: const ClampingScrollPhysics(),
                       scrollDirection: Axis.horizontal,
                      itemCount: snapshot.data.length,
                       itemBuilder: (BuildContext context, int index) {
                       return ListTile(
                      title: Column(
                      mainAxisSize: MainAxisSize.min,
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                       Row(
                         children: [
                        Flexible(child: Text('${(index + 1).toString()}.')),
                       Flexible(child: Text(snapshot.data[index].date)),
                      Flexible(
                                                                                                      child: Text(
                      snapshot.data[index].count.toString(),
                      style: const TextStyle(color: Colors.blue),
                     ),
                  )
                ],
                )
               ],
              ),
             );
            }),
            );
           } else if (snapshot.hasError) {
          logger.e('${snapshot.error}');
         }
         return const Center(
         heightFactor: 20,
        child: CircularProgressIndicator.adaptive(),
        );
      }),

【问题讨论】:

    标签: flutter dart flutter-layout dialog


    【解决方案1】:

    您需要为水平 ListView 提供高度,

     FutureBuilder<List>(
        builder: (BuildContext context, AsyncSnapshot snapshot) {
      return Container(
        height: 100, // the one  you prefer
        child: ListView.builder(
    

    【讨论】:

    • 嗨,谢谢你的回答,但它仍然抛出同样的错误,我不知道出了什么问题
    • 好吧,我最小化了 sn-p 并找到了这个。您可以尝试使用颤振清洁并重建应用程序吗?你也可以简化sn-p
    • 我更新了谢谢
    猜你喜欢
    • 2017-11-23
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 2018-09-01
    • 1970-01-01
    • 2022-11-12
    相关资源
    最近更新 更多