微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter,如何设置最大高度为 300 的灵活高度的项目列表的高度?

如何解决Flutter,如何设置最大高度为 300 的灵活高度的项目列表的高度?

This is a pic (list of branches)

  • 我有一个容器,里面有一个包含分支列表的列。
  • 我需要的是将容器的高度设置为灵活,直到它达到高度 = 300,但实际发生的是它始终为 300,如果它只包含一个项目,则高度为 300[但我需要它仅取项目的实际高度],如果它包含超过 3 个项目,它仍然是 300。

 : Container(
                          decoration: Boxdecoration(
                              color: Theme.of(context).primaryColorDark,borderRadius:
                                  BorderRadius.all(Radius.circular(10))),***constraints: BoxConstraints(
                            maxHeight: 300,minHeight: 170,),***
                          width: double.infinity,padding: EdgeInsets.all(8),margin: EdgeInsets.only(left: 16,right: 16),child: Column(
                            children: [
                              Align(
                                alignment: Alignment.centerLeft,child: Text(
                                  'Select Branch',style: TextStyle(
                                      color: Colors.white,fontSize: 20,fontWeight: FontWeight.bold),SizedBox(
                                height: 8,Align(
                                alignment: Alignment.centerLeft,child: Padding(
                                  padding: const EdgeInsets.only(left: 8.0),child: Text(
                                    'Number of branches = ${_branches.length}',style: TextStyle(
                                        color: Colors.grey,fontSize: 10),SizedBox(
                                height: 16,Expanded(
                                child: ListView.builder(
                                  itemCount: _branches.length,itemBuilder: (ctx,i) {
                                    return GestureDetector(
                                      ....
                                      child: Card(
                                        elevation: 8,shape: RoundedRectangleBorder(
                                          borderRadius:
                                              BorderRadius.circular(12),color:
                                            Theme.of(context).backgroundColor,child: Container(
                                          padding: EdgeInsets.all(20),child: Row(
                                            mainAxisSize: MainAxisSize.min,mainAxisAlignment:
                                                MainAxisAlignment.spaceBetween,children: [
                                              Text(
                                                _branches[i]
                                                    .branchdistrict
                                                    .name,style: TextStyle(
                                                    color: Colors.white,fontSize: 16),(_selectedBranchChecked == i)
                                                  ? Container(
                                                      height: 40,width: 40,child: Image.asset(
                                                        getAssetsName(
                                                            AssetsImage
                                                                .checkIcon),fit: BoxFit.cover,)
                                                  : Container(
                                                      padding: EdgeInsets.only(
                                                          top: 5,bottom: 5),height: 40,decoration: Boxdecoration(
                                                        shape: BoxShape.circle,color: Colors.white,child: SizedBox(),],);
                                  },)

解决方法

在容器属性 mainAxisSize: MainAxisSize.min 中添加到您的列,我敢打赌您必须在此处删除 Expanded 小部件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。