Flutter - 在 GridView 中禁用滚动,直到孩子填满高度

Posted

技术标签:

【中文标题】Flutter - 在 GridView 中禁用滚动,直到孩子填满高度【英文标题】:Flutter - Disable Scrolling in GridView until childs fill the height 【发布时间】:2021-02-03 17:05:08 【问题描述】:

我有点困惑。

我尝试做的是拥有一个包含一些元素的 GridView。在我的初始状态下,我有一个添加按钮。添加按钮将元素添加到网格视图。

只有在屏幕被元素填充但在我的初始状态下它已经可以滚动时,GridView 才应该滚动。

【问题讨论】:

你能显示代码吗? @Julián 找到了解决方案,需要将物理设置为 BouncingScrollPhysics 【参考方案1】:

我找到了解决办法!!

您需要将物理设置为:

BouncingScrollPhysicsRangeMaintainingScrollPhysicsClampingScrollPhysics(消除您通常在滚动到结束或开始时的反弹效果)或 PageScrollPhysics

我推荐 BouncingScrollPhysicsRangeMaintainingScrollPhysics

代码示例:

@override
  Widget build(BuildContext context) 
    return Scaffold(
      backgroundColor: Theme.of(context).backgroundColor,
      body: Padding(
        padding: const EdgeInsets.all(20.0),
        child: SingleChildScrollView(
          physics: RangeMaintainingScrollPhysics(),
          child: Column(
            children: [
              _buildHeading(),
              SizedBox(
                height: MediaQuery.of(context).size.height * 1 / 20,
              ),
              _renderImage(),
              _buildSubtitle(),
              SizedBox(
                height: MediaQuery.of(context).size.height * 2 / 20,
              ),
              _buildUsernameInput()
            ],
          ),
        ),
      ),
    );
  

也适用于 GridViewListView

【讨论】:

以上是关于Flutter - 在 GridView 中禁用滚动,直到孩子填满高度的主要内容,如果未能解决你的问题,请参考以下文章

滚动轮播、默认选项卡控制器和 GridView 合二为一

flutter 系列之:flutter 中常用的 GridView layout 详解

Flutter:在 GridView 中选择卡片

在 Flutter 的 GridView 中显示图像?

如何在 Android 中禁用 GridView 滚动?

Flutter - 如何在 SimpleDialog 框中显示 GridView?