如何在Flutter应用中的单个小部件上迭代3个列表

问题描述 投票:0回答:1

[根据情况,我开始研究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帐户的简单目录。...

for-loop flutter dart widget for-in-loop
1个回答
0
投票

我有点困惑,您想遍历图标和目的地是什么意思,但是我是根据我的理解回答。

© www.soinside.com 2019 - 2024. All rights reserved.