pks*_*sso 10 dart flutter flutter-layout
如果页面没有超出屏幕尺寸,是否可以禁用 ListView Scroll?
我总是使用 ListView 来避免溢出屏幕,但是当页面内容小于屏幕时,我可以看到结束滚动动画,在这种情况下我如何禁用滚动,并且如果屏幕尺寸小,我可以滚动? ?
DaG*_*ner 13
我认为最好的方法是使用SingleChildScrollView:
当您有一个通常完全可见的单个框时,此小部件很有用,例如时间选择器中的钟面,但您需要确保如果容器在一个轴(滚动方向)上太小,它可以滚动)。
而不是使用 aListView只是使用 aColumn并将其放在 内SingleChildScrollView:
SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[/**/],
),
)
Run Code Online (Sandbox Code Playgroud)
或者,如果您ListView出于某种原因需要使用,您可以使用shrinkWrapwith NeverScrollableScrollPhysics:
SingleChildScrollView(
child: ListView(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
children: <Widget>[/**/],
),
)
Run Code Online (Sandbox Code Playgroud)
您可以在 ListView 上设置滚动物理属性,这将禁用滚动:
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
Run Code Online (Sandbox Code Playgroud)
如果必须通过某些条件,您还可以在运行时在启用或禁用滚动之间切换:
shrinkWrap: true,
physics: disableScrolling ? NeverScrollableScrollPhysics() :
AlwaysScrollableScrollPhysics(),
Run Code Online (Sandbox Code Playgroud)
除非该滚动视图需要使用父级的PrimaryScrollController,否则将ListViewsprimary属性设置为false将导致滚动视图仅在有足够的内容时才滚动。
property文档:
这是否是与父 PrimaryScrollController 关联的主滚动视图。
当这是真的时,滚动视图是可滚动的,即使它没有足够的内容来实际滚动。否则,默认情况下,用户只能滚动视图(如果视图有足够的内容)。参见物理学。
在 iOS 上,这还标识了响应状态栏中的点击而滚动到顶部的滚动视图。
当scrollDirection为Axis.vertical并且controller为null时默认为true。