在Flutter的扩展面板列表中进行扩展时,是否有办法摆脱扩展面板之间的间距?

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

我遇到一个问题,我想在扩展面板时删除扩展面板列表的扩展面板之间的空间。

不需要的行为的图像,这些图像来自flutter文档:

未扩展时列出,可以:

enter image description here

展开时的清单:-您可以看到各部分之间的间隙。这是我不需要我的应用程序。

enter image description here

感谢任何提示。

flutter dart flutter-layout margin expandablelistview
1个回答
0
投票

您可以在下面复制粘贴运行完整代码您的代码来源https://flutter-widget.live/widgets/ExpansionPanelList您可以更改为使用ListView,请参见下面的完整代码工作演示

enter image description here

完整代码

import 'package:flutter/material.dart';

class Item {
  Item({
    this.expandedValue,
    this.headerValue,
    this.isExpanded = false,
  });

  String expandedValue;
  String headerValue;
  bool isExpanded;
}

List<Item> generateItems(int numberOfItems) {
  return List.generate(numberOfItems, (int index) {
    return Item(
      headerValue: 'Panel $index',
      expandedValue: 'This is item number $index',
    );
  });
}

void main() {
  runApp(MaterialApp(
    debugShowCheckedModeBanner: false,
    home: Home(),
  ));
}

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  List<Item> _data = generateItems(8);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Expansion Panel'),
      ),
      body: Container(
        padding: EdgeInsets.all(10),
        child: ListView.builder(
          itemCount: _data.length,
          itemBuilder: (BuildContext context, int index) {
            return ExpansionPanelList(
              animationDuration: Duration(seconds: 1),
              children: [
                ExpansionPanel(
                  body: ListTile(
                      title: Text(_data[index].expandedValue),
                      subtitle: Text(
                          'To delete this panel, tap the trash can icon'),
                      trailing: Icon(Icons.delete),
                      onTap: () {
                        setState(() {
                          //_data.removeWhere((currentItem) => item == currentItem);
                        });
                      }
                  ),
                  headerBuilder: (BuildContext context, bool isExpanded) {
                    return ListTile(
                      title: Text(_data[index].headerValue),
                    );
                  },
                  isExpanded: _data[index].isExpanded,
                )
              ],
              expansionCallback: (int item, bool status) {
                setState(() {
                  _data[index].isExpanded = !_data[index].isExpanded;
                });
              },
            );
          },
        ),
      ),
    );
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.