【问题标题】:how to create dynamic nested list view in flutter如何在颤振中创建动态嵌套列表视图
【发布时间】:2021-09-29 04:05:31
【问题描述】:

我需要创建嵌套列表视图,下面的代码工作正常,但我需要 listOfTiles 作为动态, 例如:我正在通过“银行”、“社交媒体”,即硬编码, 以下是我的适当列表,通过使用 _types、_names、_subtypes 等列表,我需要创建 listOfTiles

结果会像, 如果我点击 Banks,那将有 sbi hdfc 如果我点击 SociaMedia,就会有 fb

List<Type> _types = ['Banks','SociaMedia']
List<Name> _names = ['SBI','HDFC','FB']
List<SubType> _subtypes = ['Net Banking','Debit card']

body: new ListView.builder(
          itemBuilder: (BuildContext context, int index) {
            return new StuffInTiles(listOfTiles[index]);
          },
          itemCount: listOfTiles.length,
        )

class StuffInTiles extends StatelessWidget {
  final MyTile myTile;

  StuffInTiles(this.myTile);

  @override
  Widget build(BuildContext context) {
    return _buildTiles(myTile);
  }

  Widget _buildTiles(MyTile t) {
    if (t.children.isEmpty)
      return new ListTile(
          onTap: () => print("tap"),
          subtitle: new Text("Subtitle"),
          selected: false,
          title: new Text(t.title));
    return new ExpansionTile(
      key: new PageStorageKey<int>(1),
      title: new Text(t.title),
      children: t.children.map(_buildTiles).toList(),
    );
  }
}


class MyTile {
  String title;
  List<MyTile> children;
  MyTile(this.title, [this.children = const <MyTile>[]]);
}


List<MyTile> listOfTiles = <MyTile>[
  new MyTile(
    'Banks',
    <MyTile>[
      new MyTile(
        'SBI',
        <MyTile>[
          new MyTile(
            'NetBanking',
            <MyTile>[
              new MyTile('username'),
              new MyTile('password'),
            ],
          ),
        ],
      ),
    ],
  ),
  new MyTile(
    'SocialMedia',
    <MyTile>[
      new MyTile('Gmail'),
      new MyTile('Facebook'),
      new MyTile('Twitter'),
    ],
  )]```

【问题讨论】:

    标签: flutter dart listview dynamic


    【解决方案1】:

    很难理解你想要什么 - 但让我试着帮助你

    我想这就是你要找的东西:

    class MyTile {
      var tileName;
      MyTile({
        this.tileName,
      });
    }
    
    // Your dynamic List
    var myTile = [
      MyTile(
        tileName: 'Banks',
      ),
      MyTile(
        tileName: 'SBI',
      ),
      MyTile(
        tileName: 'username',
      ),
      MyTile(
        tileName: 'password',
      ),
      MyTile(
        tileName: 'SocialMedia',
      ),
      MyTile(
        tileName: 'Gmail',
      ),
      MyTile(
        tileName: 'Facebook',
      ),
    ];
    
    猜你喜欢
    • 2021-02-06
    • 2020-11-20
    • 2021-04-21
    • 2020-04-05
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 2018-10-26
    • 2020-08-29
    相关资源
    最近更新 更多