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】:我找到了解决办法!!
您需要将物理设置为:
BouncingScrollPhysics、RangeMaintainingScrollPhysics、ClampingScrollPhysics(消除您通常在滚动到结束或开始时的反弹效果)或 PageScrollPhysics 。
我推荐 BouncingScrollPhysics 或 RangeMaintainingScrollPhysics。
代码示例:
@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()
],
),
),
),
);
也适用于 GridView、ListView 等
【讨论】:
以上是关于Flutter - 在 GridView 中禁用滚动,直到孩子填满高度的主要内容,如果未能解决你的问题,请参考以下文章