【问题标题】:Flutter ExpansionPanel don't expand on ListViewFlutter ExpansionPanel 不在 ListView 上展开
【发布时间】:2019-12-15 21:10:29
【问题描述】:

在这个简单的代码中,我试图在ListView 中添加ExpansionPanelList,在实现之后,ExpansionPanel 在单击以展开或折叠后不会展开

import 'package:flutter/material.dart';

void main()=>runApp(MaterialApp(home: App()));

class App extends StatefulWidget {
  @override
  State<StatefulWidget> createState()=>_App();
}

class _App extends State<App> {
  List<NewItem> items = [];
  @override
  Widget build(BuildContext context) {

    items=[];

    List.generate(5, (int index) {
      items.add(NewItem(
        false,
        'aaaaa',
        Container(child:Text('1')),
        Container(child:Text('2')),
      ));
    });

    return Scaffold(body: ListView(
      children: [
        new Padding(
          padding: new EdgeInsets.all(10.0),
          child: new ExpansionPanelList(
            expansionCallback: (int index, bool isExpanded) {
              setState(() {
                items[index].isExpanded = !items[index].isExpanded;
              });
            },
            children: items.map((NewItem item) {
              return new ExpansionPanel(
                headerBuilder: (BuildContext context, bool isExpanded) {
                  return new ListTile(
                      leading: item.image,
                      title: new Text(
                        item.header,
                        textAlign: TextAlign.right,
                        style: new TextStyle(
                          fontSize: 20.0,
                          fontWeight: FontWeight.w400,
                        ),
                      ));
                },
                isExpanded: item.isExpanded,
                body: item.body,
              );
            }).toList(),
          ),
        )
      ],
    ),);
  }
}

class NewItem {
  bool isExpanded;
  final String header;
  final Widget body;
  final Widget image;

  NewItem(this.isExpanded, this.header, this.body, this.image);
}

【问题讨论】:

    标签: flutter flutter-layout flutter-listview


    【解决方案1】:

    问题解决了

      @override
      void initState() {
        super.initState();
        List.generate(5, (int index) {
          items.add(NewItem(
            false,
            'aaaaa',
            Container(child:Text('1')),
            Container(child:Text('2')),
          ));
        });
      }
    

    【讨论】:

      猜你喜欢
      • 2021-01-25
      • 1970-01-01
      • 2020-03-28
      • 2019-05-03
      • 1970-01-01
      • 1970-01-01
      • 2020-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多