zoukankan      html  css  js  c++  java
  • ExpansionTiles可用于生成两级或多级列表。

    如图

    import 'package:flutter/material.dart';
    
    class ExpansionTileSample extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return new MaterialApp(
          home: new Scaffold(
            appBar: new AppBar(
              title: const Text('ExpansionTile'),
            ),
            body: new ListView.builder(
              itemBuilder: (BuildContext context, int index) => new EntryItem(data[index]),
              itemCount: data.length,
            ),
          ),
        );
      }
    }
    
    // One entry in the multilevel list displayed by this app.
    class Entry {
      Entry(this.title, [this.children = const <Entry>[]]);
      final String title;
      final List<Entry> children;
    }
    
    // The entire multilevel list displayed by this app.
    final List<Entry> data = <Entry>[
      new Entry('Chapter A',
        <Entry>[
          new Entry('Section A0',
            <Entry>[
              new Entry('Item A0.1'),
              new Entry('Item A0.2'),
              new Entry('Item A0.3'),
            ],
          ),
          new Entry('Section A1'),
          new Entry('Section A2'),
        ],
      ),
      new Entry('Chapter B',
        <Entry>[
          new Entry('Section B0'),
          new Entry('Section B1'),
        ],
      ),
      new Entry('Chapter C',
        <Entry>[
          new Entry('Section C0'),
          new Entry('Section C1'),
          new Entry('Section C2',
            <Entry>[
              new Entry('Item C2.0'),
              new Entry('Item C2.1'),
              new Entry('Item C2.2'),
              new Entry('Item C2.3'),
            ],
          ),
        ],
      ),
    ];
    
    // Displays one Entry. If the entry has children then it's displayed
    // with an ExpansionTile.
    class EntryItem extends StatelessWidget {
      const EntryItem(this.entry);
    
      final Entry entry;
    
      Widget _buildTiles(Entry root) {
        if (root.children.isEmpty)
          return new ListTile(title: new Text(root.title));
        return new ExpansionTile(
          key: new PageStorageKey<Entry>(root),
          title: new Text(root.title),
          children: root.children.map(_buildTiles).toList(),
        );
      }
    
      @override
      Widget build(BuildContext context) {
        return _buildTiles(entry);
      }
    }
    
    void main() {
      runApp(new ExpansionTileSample());
    }

  • 相关阅读:
    jquery事件优化---事件委托
    2017年7月6号,总结所遇到的问题
    js日期函数
    跨域请求所遇到的错误
    ajax设置Access-Control-Allow-Origin实现跨域访问
    php提前输出响应及注意问题
    php中的日期和时间
    跨域请求json数据
    C++ 与 Visual Studio 2019 和 WSL(四)——库组件
    fpic 和 fPIC
  • 原文地址:https://www.cnblogs.com/sea-stream/p/12154511.html
Copyright © 2011-2022 走看看