Flutter SingleChildScrollView[长布局滚动组件]

说明:

该控件通常用于长布局的滚动。它只能包含一个子项,通常只应在期望的内容不会超过屏幕太多时使用,因为它不支持基于Sliver的延迟实例化模型,所以包含的长布局超出屏幕尺寸太多时,性能会变差,此时应该考虑使用一些支持Sliver延迟加载的可滚动控件,如ListView之类。

如果非要使用SingleChildScrollView来实现一个短列表,可以使用SingleChildScrollView + ListBody组合的方式实现。ListBody是一个依照给定的轴方向,并按照顺序排列子元素的控件。

SingleChildScrollView({
    Key? key,
    this.scrollDirection = Axis.vertical,//滚动视图滚动的轴。默认为[Axace.vertical]

    this.reverse = false,//滚动视图是否在阅读方向上滚动。例如,如果阅读方向是从左到右,[scrollDirection] 是 [Axis.horizontal],那么当 [reverse] 为 false 时滚动视图从左到右滚动,当 [reverse] 为 true 时滚动视图从右到左滚动.类似地,如果 [scrollDirection] 为 [Axis.vertical],则当 [reverse] 为 false 时,滚动视图从上到下滚动,当 [reverse] 为 true 时,滚动视图从下到上滚动。默认为假。

    this.padding,//插入孩子的空间数量。

    bool? primary,//这是否是与父[PrimaryScrollController相关联的主要滚动视图。如果为true,则滚动视图用于默认值[滚动] s。如果应用程序的其他侧重部分没有处理滚动,则使用此滚动视图进行评估滚动,例如,在向上和向下等页面执行页面执行[快捷方式]关键事件时。在iOS上,这标识了滚动视图,该视图将响应状态栏中的水龙头滚动到顶部。默认为true当[scroldirection]垂直时,未指定[控制器]。

    this.physics,//滚动视图如何应对用户输入响应。例如,确定用户停止拖动滚动视图后如何继续动画滚动视图。默认匹配平台约定。

    this.controller,//可用于控制此滚动视图滚动到的位置的对象。如果 [primary] 为真,则必须为 null。 [ScrollController] 有多种用途。它可用于控制初始滚动位置(参见 [ScrollController.initialScrollOffset])。它可以用来控制滚动视图是否应该自动保存和恢复它在[PageStorage]中的滚动位置(参见[ScrollController.keepScrollOffset])。它可用于读取当前滚动位置(参见 [ScrollController.offset]),或更改它(参见 [ScrollController.animateTo])。

    this.child,

    this.dragStartBehavior = DragStartBehavior.start,

    this.clipBehavior = Clip.hardEdge,

    this.restorationId,

    this.keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.manual,

  })
THE END
喜欢就支持一下吧
点赞12 分享