[根据情况,我开始研究Flutter,最后我感到有足够的信心去“玩”我的第一个项目。这是与交付有关的公司的instagram帐户的简单目录。如果可以完成,我将在商店中启动该应用程序,以帮助本地公司应对流行病和社会隔离。
ATM,我正在处理应用程序的抽屉,并且一切运行正常。但是我被卡住了。我想创建一个类别菜单。菜单项是ListTiles。我有两个列表来管理此菜单。一个列出类别名称的列表,另一个列出各个类别图标的列表。以后,我将需要第三个列表,其中包含每个菜单项的链接。
好吧,我要做的就是迭代每个ListTile项中的每个列表。类别列表有效100%。当我尝试迭代同一ListTile小部件内的第二个列表时,问题开始了。
我想到解决此问题的第一件事当然是创建一个for循环,并在其中使用尽可能多的具有相同索引的列表。我在DartPad中测试了这种可能性,并且效果很好!它完全按照我想要的方式返回。问题在于,为了正常工作,我需要使用for ...循环,并且当我将相同的想法转移到我的应用程序代码中时,它仅适用于单行结构(无花括号)。一旦放置了大括号,它就会返回错误((元素类型'Set<ListTile>'
无法分配给列表类型'Widget'。)] >>但是,如果我使用单行结构,则无法迭代多个列表。 (在我看来,)迭代2个或更多列表的唯一可能方法是使用大括号形式。
我不知道我是否足够清楚,但是我该如何解决这个问题?如何使用for循环在单个Widget(在我的情况下为ListTile())中迭代2个或更多列表?
下面,我将附上我遇到麻烦的类的源代码。如果您想查看整个项目并测试here,则为github上项目回购的链接。
提前感谢!
//Builds a Drawer item using ListTile()
class BuildDrawerTile extends StatelessWidget {
List<String> list;
BuildDrawerTile({@required this.list});
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
for(String item in list ) ListTile( //HERE EVERYTHING WORKS WELL AS I'M NOT USING CURLY BRACKETS
title: Text(
item,
style: GoogleFonts.quicksand(
textStyle: TextStyle(
color: Color(0xFF808080),
fontWeight: FontWeight.w300,
),
),
),
leading: Icon(Icons.play_arrow), //HERE I NEEDED TO ITERATE SPECIFIC ICONS FOR EACH ITEM
trailing: Icon(Icons.play_arrow),
onTap: (){
Navigator.pop(context); //IN THE FUTURE HERE I'LL ITERATE A THIRD LIST WITH THE DESTINATIONS
},
),
],
);
}
}
[根据情况,我开始研究Flutter,最后我感到有足够的信心去“玩”我的第一个项目。这是处理交付的公司的instagram帐户的简单目录。...
我有点困惑,您想遍历图标和目的地是什么意思,但是我是根据我的理解回答。