我有以下代码,我试图使它工作,但没有太多的运气。
@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)
关于展开运算符的更多信息