首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flutter SingleChildScrollView 滚动控件

1、属性及含义 SingleChildScrollView({ this.scrollDirection = Axis.vertical, //滚动方向,默认是垂直方向 this.reverse...}) SingleChildScrollView常用属性值 含义 scrollDirection 滚动方向,默认是垂直方向 reverse 决定可滚动组件的初始滚动位置是在“头”还是“尾”,false在...需要注意的是,通常SingleChildScrollView只应在期望的内容不会超过屏幕太多时使用,这是因为SingleChildScrollView不支持基于Sliver的延迟实例化模型,所以如果预计视口可能包含超出屏幕尺寸太多的内容时...3、示例 垂直滚动 下面是一个将大写字母A-Z沿垂直方向显示的例子。...水平滚动 下面是一个将大写字母A-Z沿水平方向显示的例子。

5.2K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    师于源码 | Flutter 区域视口双向滑动

    比如 AndroidStudio 的文件树和编辑器区域,当宽度较窄时,水平方向通过拖拽底部滚动条来滚动视口。...,在 tag4 处和 SingleChildScrollView 组件 绑定,支持横向的滚动。...也就是说,当面板区域小于fileWidth 之后,也就是宽度约束过小, 水平方向的 SingleChildScrollView 组件就会发挥效力。 下面来介绍一下,源码中如何计算最长文本宽度的。...如下所示,蓝色区域内有一行文字,当窗口宽度缩小到文本溢出时,底部会呈现滑动条支持水平滑动: 这里先总结一下实现区域视口的双向滚动的步骤: 需要两个可滑动的视口: SingleChildScrollView...约束水平方向的宽度,计算内容区尺寸宽度值,使小于该尺寸时,允许水平滑动。

    52620

    Flutter | 滚动组件,ListView,GridVIew等

    可滚动组件中有很多都支持 Sliver 的延时构建模型,如 ListView,GridView ,但是也有不支持改模型的 SingleChildScrollView 主轴和纵轴 在滚动组件的坐标描述中,...由于可滚动组件的默认方向一般都是沿垂直方向,所以默认情况下主轴就是指垂直方向,水平方向同理 SingleChildScrollView SingleChildScrollView 类似于 Android...需要注意的是,通常 SingleChildScrollView 只应用在期望内容不会超过屏幕太多时使用,这是因为 SingleChildScrollView 不支持 Sliver 的延时实例初始化模型...的 长度为 itemExtent 的值;这里的长度指的是方向上子组件的长度,也就是说滚动的是垂直方向,则 itemnExtent 代表子组件的高度;如果是水平方向,则是子组件的宽度。...没有应用基于 Sliver 的懒加载模型 实际上通过默认构造函数创建的 ListView 和使用 SingleChildScrolLView + Column 的方式没有本质区别,下面看一个栗子: ListView

    8.7K20

    Flutter 入门指北之滑动部件(超详细)

    那么这里提下可滑动的容器部件 SingleChildScrollView 这个部件非常简单,不贴源码了。最简单的使用方式只需要提供一个 child 即可。...现在给前面写的 Text 包裹上一层 SingleChildScrollView 然后再运行,文字全部都展示出来了。...如果需要实现一个垂直的滚动列表,可以直接通过 SingleChildScrollView 包裹 Column 来实现,列表内容全部塞到 Column 即可 class SingleChildScrollDemoPage...body: ListView( // 通过修改滑动方向设置水平或者垂直方向滚动 scrollDirection: Axis.vertical, // 通过 iterable.map...这个数量是只单排的数量 SliverGridDelegateWithMaxCrossAxisExtent 这个是设置最大宽度/高度,在这个值范围内取最大值,比如一排能给你排下 6 个,但是远不到设置的最大值

    2.5K30

    Flutter开发-可滚动组件

    我们先介绍一下常用的可滚动组件(如ListView、GridView等) SingleChildScrollView SingleChildScrollView类似于Android中的ScrollView...定义如下: SingleChildScrollView({ this.scrollDirection = Axis.vertical, //滚动方向,默认是垂直方向 this.reverse =...需要注意的是,通常SingleChildScrollView只应在期望的内容不会超过屏幕太多时使用,这是因为SingleChildScrollView不支持基于Sliver的延迟实例化模型,所以如果预计视口可能包含超出屏幕尺寸太多的内容时...的“长度”为itemExtent的值;这里的“长度”是指滚动方向上子组件的长度,也就是说如果滚动方向是垂直方向,则itemExtent代表子组件的高度;如果滚动方向为水平方向,则itemExtent就代表子组件的宽度...,之所以是“最大”长度,是因为横轴方向每个子元素的长度仍然是等分的,举个例子,如果ViewPort的横轴长度是450,那么当maxCrossAxisExtent的值在区间[450/4,450/3)内的话

    4.5K20

    《Flutter》-- 6.高级组件

    6.1.3 SingleChildScrollView组件 是一个只能包含单一子组件的可滚动组件,其作用类似于iOS的UIScrollView组件或Android的ScrollView组件。...只能应用于内容不会超过屏幕尺寸太多的情况,因为SingleChildScrollView组件目前还不支持基于Sliver的延迟加载,如果视图内容超出屏幕尺寸太多会导致性能问题。...SingleChildScrollView组件的构造函数: const SingleChildScrollView({ Key key, this.scrollDirection = Axis.vertical...,//滚动的方向,默认在垂直方向滚动 this.reverse = false,//控制从头还是从尾开始滚动,默认false,即从头开始滚动 this.padding,//插入子组件时的内边距...如果滚动方向是垂直方向,则表示子组件的高度;如果滚动方向为水平方向,则表示子组件的长度。

    10.7K20

    WPF UNO 测试固定尺寸且水平和垂直对齐设置 Stretch 的元素在容器内的布局行为

    本文将告诉大家我对 WPF 的自定义布局容器和自定义控件进行的布局行为测试中的一个小点,即测试固定元素的尺寸的情况下或元素尺寸为有限尺寸的情况下,同步设置元素的水平和垂直对齐为 Stretch 来测试元素在容器内的布局行为...,元素分别在容器给元素的布局尺寸大于元素的尺寸和小于元素尺寸的行为 由于刚好运行在 WPF 之上 UNO 框架里的元素行为和 WPF 原生布局行为是完全相同的,本文也作为 UNO 的元素布局测试记录内容...如下面代码,编写一个自定义的继承于 Panel 类型的自定义布局容器,重写布局容器设置其布局行为为将自身的尺寸传入给到里层控件 protected override Size MeasureOverride...,从而测试在自定义容器给里层元素不同的布局空间时,设置了水平和垂直对齐为 Stretch 的元素会如何布局 给以上的这个自定义容器插入一个元素,设置元素给定尺寸且设置了水平和垂直对齐,如下面代码...,我还给以上的 Grid 添加一圈的带背景的 Border 控件,用来测试在布局尺寸空间超过元素所需尺寸时的行为,和测试在布局尺寸空间小于元素所需尺寸时的压缩元素裁剪行为 对 WPF 和跑在 WPF 框架之上的

    19310

    Flutter 绘制探索 5 | 深入分析重绘范围 RepaintBoundary | 七日打卡

    本文就来深入探究一下这些情况,已及对应的解决方案。 ---- 一、滑动中的莫名重绘 1. 测试案例 如下,通过一个 SingleChildScrollView 包含一个自定义的画板组件。...override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(), body: SingleChildScrollView...它是由 SingleChildScrollView 间接创建的,在它的绘制中,会触发绘制孩子。 ? 它的 child 属性是 RenderFlex ,是由 Colunm 创建的。 ?...从这可以看出这是列表类滑动组件的默认行为,RepaintBoundary 并没有那么昂贵。 ? 你可以做一个测试,将 SingleChildScrollView 替换成 ListView 。...本文就到这里,下一篇将会讲解另一个 shouldRepaint 无法控制的画板重绘,不过这个无法控制是我们的需求,那就是基于 repaint 对画板绘制的原理。

    4.2K31

    不一样角度带你了解 Flutter 中的滑动列表实现

    本篇主要帮助剖析理解 Flutter 里的列表和滑动的组成,用比较通俗易懂的方式,从常见的 ListView到 NestedScrollView 的内部实现,帮助你更好理解和运用 Flutter 里的滑动列表... 使用的是 SliverFillViewport; 当然这里有一个特殊的是 SingleChildScrollView , 因为它是单个 child 的可滑动控件,它并没有使用 RenderSliver...里实现布局」, Viewport 里的直属 children 也需要是 RenderSliver; 那到这里你可能会有一个疑问:既然前面 SingleChildScrollView 里没有使用 RenderSliver...RenderBox 在 SingleChildScrollView 内部使用的是 RenderBox ,那么在布局过程中自然而然会把整个 child 都进行布局和计算,绘制时主要也是通过 offset ...layoutExtent ) 对 item 多出的蓝色 8-9 部分,这是因为在  SliverConstraints 内会有一个叫 remainingCacheExtent 的参数,它表示了需要提前缓存的布局区域

    1.1K30

    不一样角度带你了解 Flutter 中的滑动列表实现

    本篇主要帮助剖析理解 Flutter 里的列表和滑动的组成,用比较通俗易懂的方式,从常见的 ListView 到 NestedScrollView 的内部实现,帮助你更好理解和运用 Flutter 里的滑动列表...使用的是 SliverFillViewport; 当然这里有一个特殊的是 SingleChildScrollView , 因为它是单个 child 的可滑动控件,它并没有使用 RenderSliver...里实现布局, Viewport 里的直属 children 也需要是 RenderSliver; 那到这里你可能会有一个疑问:既然前面 SingleChildScrollView 里没有使用 RenderSliver...RenderBox 在 SingleChildScrollView 内部使用的是 RenderBox ,那么在布局过程中自然而然会把整个 child 都进行布局和计算,绘制时主要也是通过 offset...) 对 item 多出的蓝色 8-9 部分,这是因为在 SliverConstraints 内会有一个叫 remainingCacheExtent 的参数,它表示了需要提前缓存的布局区域, 也就是“

    2.2K51

    Flutter | 一个超级酷炫的登录页是怎样炼成的

    需求分析 首先还是老套路,看一下都需要做什么事情: 1.首先我们最清晰明了的需求就是点击「注册」弹出 Dialog2.弹出 Dialog 后延迟一段时间弹出 Dialog 里的内容3.Dialog 内说明文字有两种颜色...4.点击 「Accepter」按钮会变色缩小回弹并展示 ok图标5.点击「Accepter」按钮时 Dialog 内其他文字都被「白色遮罩」6....: 为什么要加一个 SingleChildScrollView?...Dialog 内说明文字有两种颜色 有两种颜色这个需求还是比较简单的,使用 「TextSpan」就搞定了。 代码我就不贴了。 4....点击「Accepter」按钮时 Dialog 内其他文字都被「白色遮罩」 这个也很简单,Container 默认就有一个参数是:foregroundDecoration,我们只需要在这个参数里设置上我们想要遮罩的颜色就可以了

    2.1K20

    Flutter | 一个超级酷炫的登录页是怎样炼成的

    需求分析 首先还是老套路,看一下都需要做什么事情: 首先我们最清晰明了的需求就是点击「注册」弹出 Dialog 弹出 Dialog 后延迟一段时间弹出 Dialog 里的内容 Dialog 内说明文字有两种颜色...opacity: _opacityTween.evaluate(animation), child: Stack( children: [ SingleChildScrollView...: 为什么要加一个 SingleChildScrollView?...Dialog 内说明文字有两种颜色 有两种颜色这个需求还是比较简单的,使用 「TextSpan」就搞定了。 代码我就不贴了。 4....点击「Accepter」按钮时 Dialog 内其他文字都被「白色遮罩」 这个也很简单,Container 默认就有一个参数是:foregroundDecoration,我们只需要在这个参数里设置上我们想要遮罩的颜色就可以了

    39810

    检查 Flutter 应用程序是否在 Web 上运行(书籍推荐)

    《Flutter开发零基础入门》  本书编写的目的就是帮助零基础学习跨平台开发的读者,既要学习Flutter开发技术,又要掌握解决实际问题的能力,提高实际项目的开发水平,从而快速成为一名合格的Flutter...介绍面向对象的基本概念、类的声明、成员变量与成员方法的定义和使用方法,以及构造方法、类的继承、抽象类、接口的定义和使用方法等。   第5章Dart高级编程。...介绍泛型的定义、使用方法和应用场景,同步和异步的概念,并结合文件(目录)同步、异步操作相关API的使用方法阐述同步、异步的应用场景等。   第6章 基本组件。...、SingleChildScrollView、ScrollController、ListTile、ListView、Refreshlndicator等组件的使用方法,以及video_player和chewie...开发技术,提高实际开发水平。

    1.7K10

    Flutter 中创建一个绘图画布

    context) { return AlertDialog( title: const Text('Choose a color'), content: SingleChildScrollView...如果点列表不频繁更改,这不是性能最优的选择,因为即使没有必要也会重新绘制。 paint 方法的逻辑 paint 方法的逻辑本质上是在连续的点之间绘线,这些点应该是 isPoint 为 true 的点。...如果点不是连续的,即 isPoint 为 false,则跳过绘制到下一个点。这是处理用户手指抬离屏幕然后触屏生成另一个点绘制不连续点的简单方法。...我们可以通过添加更多的特性来扩展,比如调整画笔的大小,保存绘图或者添加更加复杂的手势。 这个教程为在 Flutter 中创建交互式图形应用程序提供了坚实的基础。...尝试更多的功能并自定义来扩展我们应用程序的能力。

    18510
    领券