Flutter:为ListView创建小部件



我有以下代码,我试图使它工作,但没有太多的运气。

@override
Widget build(BuildContext context) {
return DefaultTabController(
length: Provider.of<CP>(context, listen: false).adminStructures.length,
child: Scaffold(
backgroundColor: blue,
appBar: AppBar(
backgroundColor: blue,
title: Text('Select Category'),
bottom: TabBar(
labelStyle: TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold),
unselectedLabelStyle: TextStyle(fontSize: 14.0),
isScrollable: true,
enableFeedback: true,
labelColor: Colors.white,
unselectedLabelColor: Colors.white,
tabs: [
for (final structure in Provider.of<CP>(context, listen: false).adminStructures)
Tab(text: structure.name),
],
),
elevation: 0.0,
),
body: Column(
children: [
for (final structure in Provider.of<CP>(context, listen: false).adminStructures)
getListOfWidgets(structure)

],
),
),
);
}
getListOfWidgets(MyCategory structure) {
List<Widget> widgets = [];
List<Answer>? answers = [];
if (Provider.of<CP>(context, listen: false).catAndMembers[structure.uid] != null) {
answers = Provider.of<CP>(context, listen: false).catAndMembers[structure.uid];
if (answers != null) {
answers.forEach((element) {
widgets.add(ListView(shrinkWrap:true, children: [Text(element.fullName, style: TextStyle(color: Colors.white))]));
});
}
}
return widgets;
}
}

catAndMembers is a Map of <String, List<Answer>>

我得到以下错误

'List'不是'Widget'类型的子类型

我试图在每个结构类别下显示答案,并在没有答案的类别下显示空白页。

真的可以使用一些帮助来修复这个,请!

getListOfWidgets(structure)返回List<Widget>,在这种情况下使用像

这样的扩展运算符
for (final structure in Provider.of<CP>(context, listen: false).adminStructures)
...Tab(text: structure.name),

另外,我更喜欢包含return on方法,这样可以帮助注意到reader和IntelliJ。像

List<Widget>getListOfWidgets(MyCategory structure) 

关于展开运算符的更多信息

相关内容

  • 没有找到相关文章

最新更新