我有一些很长的列表,想要在屏幕上显示所有内容。因为它没有组织,所以我想创建一个 ExpansionTile 以便用户可以打开和关闭所需的列表。我只是无法按照我想要的方式创建它。我可以打开 ExpansionTile
,但无法向下滚动查看底部的数字。在这种情况下我可以使用 ExpansionTile
还是其他 Widget 可以更好地完成这项工作?
以下是我的代码的简化版本:
void main() async {
runApp(ExpansionTileDemo());
}
class ExpansionTileDemo extends StatefulWidget {
@override
_ExpansionTileDemoState createState() => _ExpansionTileDemoState();
}
class _ExpansionTileDemoState extends State<ExpansionTileDemo> {
List<int> numbers = [];
@override
void initState() {
for (int i = 0; i < 100; i++) {
numbers.add(i);
}
super.initState();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("ExpansionTile demo"),
),
body: ListView(
children: [
ExpansionTile(
title: Text('List 1'),
children: [
ListView.builder(
shrinkWrap: true,
itemCount: numbers.length,
itemBuilder: (context, index) => ListTile(
title: Text(
"${numbers[index]}",
),
),
)
],
),
ExpansionTile(
title: Text('List 2'),
children: [
ListView.builder(
shrinkWrap: true,
itemCount: numbers.length,
itemBuilder: (context, index) {
print(numbers[index]);
return ListTile(
title: Text(
"${numbers[index]}",
),
);
})
],
),
],
),
),
);
}
}
最佳答案
在给定正文的 ListView 中将shrinkWrap设置为true。看看这是否有效。
关于flutter - ExpansionPanel/ExpansionTile 中的 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65294321/