flutter - 如何在一页上呈现ListView.builder和GridView.builder

标签 flutter dart

我想在一页上撕裂ListView.builder和GridView.builder,但我尝试了此代码,但仍能正常工作
解决这两个构建器的困难将同时显示垂直列表和可滚动显示。

Scaffold(
      appBar: AppBar(title: Text("Title")),
      body: Column(
        children: <Widget>[
          ListView.builder(
            primary: false,
            shrinkWrap: true,
            itemBuilder: (context, position) {
              return ListTile(
                title: Text(choices[position]),
              );
            },
            itemCount: choices.length,
          ),
          GridView.builder(
              physics: ScrollPhysics(),
              shrinkWrap: true,
              gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                crossAxisCount: 2,
                childAspectRatio: (3 / 2),
              ),
              itemCount: personas.length,
              itemBuilder: (BuildContext context, int index) {
                return Container(
                  child: Card(
                    child: Center(
                      child: Text(personas[index]?.fullName),
                    ),
                  ),
                );
              }),
        ],
      ),
    );

最佳答案

Column包裹SingleChildScrollView可以解决渲染问题。加physics: ScrollPhysics(),这将允许ListViewGridView垂直滚动

Scaffold(
      appBar: AppBar(title: Text("Title")),
      body: SingleChildScrollView(
        child: Column(
          children: <Widget>[
            ListView.builder(
              shrinkWrap: true,
              physics: ScrollPhysics(),
              itemBuilder: (context, position) {
                return ListTile(
                  title: Text('List Item'),
                );
              },
              itemCount: 20,
            ),
            GridView.builder(
                physics: ScrollPhysics(),
                shrinkWrap: true,
                gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                  crossAxisCount: 2,
                  childAspectRatio: (3 / 2),
                ),
                itemCount: 15,
                itemBuilder: (BuildContext context, int index) {
                  return Container(
                    child: Card(
                      child: Center(
                        child: Text('Grid Item'),
                      ),
                    ),
                  );
                }),
          ],
        ),
      ),
    );
输出:
enter image description here

关于flutter - 如何在一页上呈现ListView.builder和GridView.builder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63354659/

相关文章:

Flutter:使构建时环境变量可用于代码

flutter - Flutter检测Navigator准备就绪的时间

Flutter NetworkImage 错误

ios - 跟踪用户喜欢的帖子 - flutter 和 firestore

json - 将Json转换为包含对象列表的对象时出错

flutter - 如何使用 ContinuousRectangleBorder 的 getOuterPath 使其看起来像倒圆形边框?

pdf - 参数类型 'Future<Widget>' 无法分配给参数类型 'Widget' .dart

mobile - 在 pdf 查看器上显示/隐藏选项栏

flutter - flutter 导航

flutter - 命名为MaterialPageRoute?