flutter - ExpansionPanel/ExpansionTile 中的 ListView

标签 flutter flutter-layout

我有一些很长的列表,想要在屏幕上显示所有内容。因为它没有组织,所以我想创建一个 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/

相关文章:

flutter - 自定义 Sliver App Bar 在滚动时带有图像和 2 个文本小部件进入应用程序栏

flutter - 如何在 flutter 中创建分隔符 GridView ?

database - Flutter sqflite 打开已有数据库

flutter - 如何在 flutter 中单击清除按钮时清除整个表单

flutter - Flutter:为MaterialApp类应用渐变背景

flutter - (Flutter) 在 PageView 中自定义圆点指示器和动画

flutter - 如何在flutter中获取showModalBottomSheet的onDismiss回调?

flutter - 全屏详细信息覆盖投影仪位置

Flutter - 使用 .popUntil 传回数据

android - 实现 setState 导致 Infinite Loop Flutter