如何为字幕动态添加小部件? (对于ListTile)

时间:2019-08-31 09:20:08

标签: flutter dart

我正在尝试将Chips添加到ListTile字幕中,以便在通过ListView.builder创建listTile时,根据用户的选择,他们可以在字幕中看到多个芯片。

ListView.builder(

      scrollDirection: Axis.vertical,
      itemCount: myShoppingBasketList.length,
      itemBuilder: (ct, shoppingListViewBuilderItemInteger)
      {

       return Card(
            child: ListTile(key: UniqueKey(),
                //dense: true,
                leading: ...,
                title: ...
                subtitle: Wrap(<add chips here)...
                onTap: () 
                {

// Code to add new chips depending on selection


                }

        })

所以-我如何动态+ =添加到Wrap小部件。当我说

+=

我希望的是,如果芯片像字符串一样,那么我想要的东西是:

Wrap(SomeChipContainerWidget = SomeChipContainerWidget+ newChipWidget))

您看到我的问题了吗?

因此,假设subTitle是一个Text小部件,那么其中的String文本可能是:

Text(stringVar + = stringVar + newString)

我已经尝试了一切-您无法想象。我看过扩展图块-无法正常工作,不能制作动画,等等。

任何帮助将不胜感激。甚至同情。

1 个答案:

答案 0 :(得分:1)

根据您的要求声明一个列表并将芯片添加到列表中。

示例代码:

List<Chip> chips = []; // Global Variable (Add a chip by default)
[...]
ListView.builder(
      scrollDirection: Axis.vertical,
      itemCount: myShoppingBasketList.length,
      itemBuilder: (ct, shoppingListViewBuilderItemInteger)
      {
       return Card(
            child: ListTile(key: UniqueKey(),
                //dense: true,
                leading: [...],
                title: [...]
                subtitle: Wrap(children: <Widget>[chips])...
                onTap: () 
                {
                   setState((){
                       chips.add(
                        Chip() //Your new chip
                        );
                    });
                }
        })