[英]Flutter - rendering problem with ListView.builder
我在使用包含“ListView.builder”元素的自定义 Flutter 小部件时遇到“RenderBox 未布局”错误,我看不出问题出在哪里或如何解决。
请参阅下面显示的示例代码的底部。 如果我注释掉 'ListView.builder' 代码块并将其替换为 'Text('Has members') 那么我不会收到错误,因此它一定与 ListView.builder 有关。
有什么建议么?
class GroupMembershipSelector extends FormField<List<GroupMember>> {
final BuildContext? parentContext;
GroupMembershipSelector(
{this.parentContext,
FormFieldSetter<List<GroupMember>>? onSaved,
FormFieldValidator<List<GroupMember>>? validator,
List<GroupMember>? initialValue,
AutovalidateMode autoValidate = AutovalidateMode.disabled})
: super(
onSaved: onSaved,
validator: validator,
initialValue: initialValue,
autovalidateMode: autoValidate,
builder: (FormFieldState<List<GroupMember>> state) {
return Container(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
TextButton.icon(
label: Text('Add to group'),
icon: Icon(Icons.add),
onPressed: () {
showModalGroupMemberForm(parentContext!, null)
.then((aNewMember) {
if (aNewMember != null) {
if (state.value == null) {
List<GroupMember> aList = [];
aList.add(aNewMember);
state.didChange(aList);
} else {
List<GroupMember> anExisting = state.value!;
anExisting.add(aNewMember);
state.didChange(anExisting);
}
}
});
},
),
Flexible(
child: ( (state.value == null) || (state.value!.length == 0))
? Text('No members')
// : Text('Has members'),
: ListView.builder(
itemCount: state.value!.length,
itemBuilder: (context, index) {
return Flexible(
child: ListTile(
title: Text(state.value![index].email)));
}),
),
],
),
);
}) {}
}
从ListTile
中删除Flexible
的小部件。 这将是
Flexible(
child: ListView.builder(
itemBuilder: (context, index) {
return ListTile();
},
),
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.