我遇到一个问题,我想在扩展面板时删除扩展面板列表的扩展面板之间的空间。
不需要的行为的图像,这些图像来自flutter文档:
未扩展时列出,可以:
展开时的清单:-您可以看到各部分之间的间隙。这是我不需要我的应用程序。
感谢任何提示。
您可以在下面复制粘贴运行完整代码您的代码来源https://flutter-widget.live/widgets/ExpansionPanelList您可以更改为使用ListView
,请参见下面的完整代码工作演示
完整代码
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;
});
},
);
},
),
),
);
}
}