如何解决Flutter,如何设置最大高度为 300 的灵活高度的项目列表的高度?
- 我有一个容器,里面有一个包含分支列表的列。
- 我需要的是将容器的高度设置为灵活,直到它达到高度 = 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 举报,一经查实,本站将立刻删除。