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

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

DevTools 代码区域相关源码分析 Flutter DevTools 有几个功能页签,界面相关的代码在 screens 文件夹,其中每个文件夹对应一个功能,今天的主角是 debugger 的代码区域...,在 tag4 处和 SingleChildScrollView 组件 绑定,支持横向的滚动。...也就是说,当面板区域小于fileWidth 之后,也就是宽度约束过小, 水平方向的 SingleChildScrollView 组件就会发挥效力。 下面来介绍一下,源码如何计算最长文本宽度的。...也有由于这一点,之前一直没能实现区域视口双向滑动的功能。下面是在竖直方向上 ScrollBar 构造时存在的一行代码:可以只监听竖直滚动的通知,忽略水平方滚动向通知。...Flutter DevTools 源码扒出来了,然后分享给大家,这个功能在桌面端是非常非常必要的。

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

Flutter | 滚动组件,ListView,GridVIew等

physics:此属性接受一个 ScrollPhysics 类型对象,他觉得可滚动组件如何响应用户的操作,比如用户滑动完抬起手指后,继续执行动画;或者滑动到边界之后如何显示。...这种机制带来的好处是父组件可以控制子树滚动组件的滚动行为,例如,Scaffold 正是使用这种机制在 IOS 上实现了点击导航栏回到顶部的功能 Scrollbar Scrollbar 是一个 Material...可滚动组件中有很多都支持 Sliver 的延时构建模型,如 ListView,GridView ,但是也有不支持改模型的 SingleChildScrollView 主轴和纵轴 在滚动组件的坐标描述,...的 ScrollView ,它只能够接受一个子组件,定义如下: SingleChildScrollView({ this.scrollDirection = Axis.vertical, //滚动方向...,也正因为如此,CustomScrollView 可以将多个 Sliver 粘在一起,这些 Sliver 共用 CustomScrollView 的 Scrollable,所以最终实现了统一的滑动效果

8.4K20

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

现在给前面写的 Text 包裹上一层 SingleChildScrollView 然后再运行,文字全部都展示出来了。...如果需要实现一个垂直的滚动列表,可以直接通过 SingleChildScrollView 包裹 Column 来实现,列表内容全部塞到 Column 即可 class SingleChildScrollDemoPage...那么如果需要实现横向滚动列表呢,稍稍做下修改就行了 body: SingleChildScrollView( // 设置滚动方向 scrollDirection: Axis.horizontal...separated 方法用来快速构建带有分割线的 ListView 加入我们的 item 之间的分割线需要如下样式:奇数位和偶数位之间用黑色分割线,偶数位和奇数位之间用红色分割线 // 需要分割线的时候使用...在结束前,我们再说下如何通过 ScrollController 来控制 Scrollable 的滚动位置。

2.4K30

Flutter 分页功能表格控件

老孟导读:前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析来来。...PaginatedDataTable PaginatedDataTable是一个带分页功能的DataTable,生成一批数据,项目中此一般通过服务器获取,定义model类: class User {...效果如下: getRow是根据index获取每一行的数据,通常使用DataRow.byIndex返回数据,cells表示每一个表格的数据,cells的数量需要与PaginatedDataTablecolumns...显示的数据过多时,需要将PaginatedDataTable包裹在SingleChildScrollView滚动显示数据: SingleChildScrollView( child: PaginatedDataTable...包裹,显示不全时滚动显示,用法如下: SingleChildScrollView( scrollDirection: Axis.horizontal, child: PaginatedDataTable

1.9K31

《Flutter》-- 6.高级组件

6.1.1 Scrollable组件 在Flutter,一个可滚动的组件直接或间接包含一个Scrollable组件,它是可滚动组件的基础组件。...目前,可滚动组件的大部分组件都支持基于Sliver的延迟构建模型,如ListView、GridView。...在实际使用过程,Flutter提供了SliverList、SliverGrid等可滚动组件的Sliver版本。...,如果已改变,则返回true并执行重绘操作,反之则返回false不执行重绘; 2)绘制应尽可能多地进行分层 因为复杂的自绘组件都是由很多功能构成的,如果都写在一个方法,不利于阅读,而且全部重绘带来的性能开销也很大...无论是创建组合组件还是创建自绘组件,首先需要考虑如何将复杂的布局简化,把大问题拆分成若干小问题。

10.5K20

Flutter跨平台移动端开发丨SingleChildScrollView、ListView......

---- SingleChildScrollView(可滑动 View) SingleChildScrollView 类似 Android 的 scrollview ,且同样的只可包含有一个子元素...Widget如何响应用户操作,比如用户滑动完抬起手指后,继续执行动画;或者滑动到边界时,如何显示。...controller:控制器对象,主要作用是控制滚动位置和监听滚动事件 primary:是否使用 widget 树默认的 PrimaryScrollController 。...Widget如何响应用户操作,比如用户滑动完抬起手指后,继续执行动画;或者滑动到边界时,如何显示。...controller:控制器对象,主要作用是控制滚动位置和监听滚动事件 primary:是否使用 widget 树默认的 PrimaryScrollController 。

8.6K51

开始使用-编写你的第一个Flutter应用程序 顶

查找和使用包来扩展功能。 使用热重载加快开发周期。 如何实现有状态的小部件。 如何创建一个无限的,延迟加载的列表。 如何创建并导航到第二个屏幕。 如何使用主题更改应用程序的外观。...第2步:使用外部包装 在这一步,您将开始使用名为english_words的开源软件包,其中包含数千个最常用的英文单词以及一些实用功能。...将心形图标添加到ListTiles以启用收藏。...稍后,您将添加与心脏图标进行交互的功能。...用ListView和ListTiles创建一个延迟加载的无限滚动列表。 创建了一条路由并添加了在主路由和新路由之间移动的逻辑。 了解如何使用主题更改应用UI的外观。

9.5K20

Flutter构建布局 顶

Flutter的布局机制如何工作。 如何垂直和水平布局小部件。 如何构建一个Flutter布局。 这是在Flutter构建布局的指南。 您将构建以下屏幕截图的布局: ?...这些小部件安排在ListView,而不是列,因为在小设备上运行应用程序时,ListView会自动滚动。...如果您愿意,可以构建仅使用小部件库的标准小部件的应用程序。 如何在Flutter布置单个小部件? 本节介绍如何创建一个简单的小部件并将其显示在屏幕上。...您可以使用Image.network从网络嵌入图像,但对于此示例,图像将保存到项目中的图像目录,添加到pubspec文件并使用Images.asset访问。...处理Flutter的盒子约束:讨论小部件如何受其渲染框限制。 在Flutter添加资产和图像:说明如何将图像和其他资源添加到应用程序包

43K10

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

「本篇不是教你如何使用 API ,而是一些日常开发不常接触,但是很重要的内容」。...; RenderSliver :「主要用在 Viewport 里实现布局」, Viewport 里的直属 children 也需要是 RenderSliver; 那到这里你可能会有一个疑问:既然前面 SingleChildScrollView...RenderBox 在 SingleChildScrollView 内部使用的是 RenderBox ,那么在布局过程自然而然会把整个 child 都进行布局和计算,绘制时主要也是通过 offset ..., 主要是用来当 markNeedsLayout 时对外发出通知,比如对 header 部分; 所以 NestedScrollView 本质上两个 Viewport 之间的嵌套,那他们之间是滑动关系是如何处理的...最后在 _NestedScrollCoordinator 的 drag 和 applyUserOffset 等方法里进行内外滚动的分配; image.png SliverPersistentHeader

1K30

Flutter 1.22 正式发布

在Flutter 1.22版,我们预览了使用Flutter构建的App Clip目标。 ? 有关如何使用Flutter构建Clip的更多详细信息,请查看flutter.dev上的文档。...这在Android 11已修复。 关于Android嵌入API的一项说明。...如果您想使用平台视图在iOS或Android上托管自己的本机UI组件,则可以了解如何在使用平台视图在Flutter应用托管本机Android和iOS视图上。...我们已经在Scrollable类中提供了支持,例如ListView和SingleChildScrollView(记住用户的滚动位置)和TextField(恢复他们输入的文本),并且我们计划将其扩展到其他小部件...从今天的Flutter 1.22 SDK开始,您会发现/ bin文件夹(您可能在PATH包含该文件夹)同时包含flutter和dart命令。有关更多详细信息,请参见Dart 2.10博客文章。

7.4K20

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

本篇不是教你如何使用 API ,而是一些日常开发不常接触,但是很重要的内容。...来实现布局; RenderSliver :主要用在 Viewport 里实现布局, Viewport 里的直属 children 也需要是 RenderSliver; 那到这里你可能会有一个疑问:既然前面 SingleChildScrollView...RenderBox 在 SingleChildScrollView 内部使用的是 RenderBox ,那么在布局过程自然而然会把整个 child 都进行布局和计算,绘制时主要也是通过 offset..., 主要是用来当 markNeedsLayout 时对外发出通知,比如对 header 部分; 所以 NestedScrollView 本质上两个 Viewport 之间的嵌套,那他们之间是滑动关系是如何处理的...最后在 _NestedScrollCoordinator 的 drag 和 applyUserOffset 等方法里进行内外滚动的分配; ?

2.1K41
领券