我尝试删除列表视图构建器后的额外空间,但没有成功。我尝试了不同的方法,如我用MediaQuery Package 了我的列表视图构建器。removePadding并将填充值设置为零。我还将列表视图构建器的填充值设置为零,但我没有得到所需的输出。我不知道我在哪里犯了错误。
下面是代码:
SizedBox(
width: widget.isDialog ? 600 : double.infinity,
height: MediaQuery.of(context).size.height / 2.5,
child: ThemeConfig.selectFilterAsCheckBox
? Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Flexible(
child: ListView.builder(
physics: const ScrollPhysics(),
itemCount: tags.length,
itemBuilder: (context, index) {
return CheckboxListTile(
value: tempSelectedTags.contains(tags[index].id),
onChanged: (e) {
setState(() {
if (tempSelectedTags.contains(tags[index].id)) {
tempSelectedTags.remove(tags[index].id);
} else {
tempSelectedTags.add(tags[index].id);
}
});
},
title: Text(
tags[index].name,
style: !tempSelectedTags.contains(tags[index].id)
? textTheme.labelMedium?.copyWith(
color: ThemeConfig.colorgreen)
: textTheme.titleSmall?.copyWith(
color: ThemeConfig.colorgreen),
),
);
}),
),
Padding(
padding: const EdgeInsets.only(bottom: 12),
child: PrimaryButton(
title: Apply,
onPressed: () {
viewModel.setting(tempSelectedTags);
Navigator.pop(context);
},
),
),
],
)
4条答案
按热度按时间vawmfj5a1#
您可以在listView中包含
shrinkWrap: true,
,这将解决问题,但我更喜欢将项目长度增加一个。
mtb9vblg2#
您需要
remove the SizedBox height
,在ListView构建器中设置shrinkWrap: true
,然后设置physics : NeverScrollableScrollPhysics()
您的代码将为
b1payxdu3#
解决方法是理解Alertdialog是如何工作的。2灵活的小部件必须被移除并且列表必须是可滚动的。3这里是一个快速的答案。
输出如下所示:
ef1yzkbh4#
您可以使用Listview.builder的itemExtent属性灵活(子级:列表视图.builder(项目范围:标记。长度+20,收缩环绕:对,物理学:常量滚动物理(),