news 2026/3/29 14:10:11

Flutter---Scrollable

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flutter---Scrollable

概念

Scrollable是Flutter中处理滚动的抽象类

abstract class Scrollable extends StatefulWidget { final AxisDirection axisDirection; final ScrollController? controller; final ScrollPhysics? physics; final ViewportBuilder viewportBuilder; }

层次结构

Scrollable ├── Viewport │ ├── SliverList │ ├── SliverGrid │ └── SliverToBoxAdapter └── Scrollbar (可选)

基本使用

Scrollable( axisDirection: AxisDirection.down, //滚动方向 controller: ScrollController(), //控制滚动位置和行为 physics: BouncingScrollPhysics(), //定义滚动物理效果,iOS风格,滚动到边界时有回弹效果 viewportBuilder: (context, offset) { //视口构建器 return Viewport( offset: offset, slivers: [/* 你的Sliver列表 */], ); }, )

ScrollPhysics滚动物理效果

// 1. BouncingScrollPhysics - iOS风格弹性效果 physics: BouncingScrollPhysics() // 2. ClampingScrollPhysics - Android风格阻尼效果 physics: ClampingScrollPhysics() // 3. FixedExtentScrollPhysics - 固定高度滚动 physics: FixedExtentScrollPhysics() // 4. PageScrollPhysics - 页面滚动效果 physics: PageScrollPhysics() // 5. NeverScrollableScrollPhysics - 禁止滚动 physics: NeverScrollableScrollPhysics() // 6. AlwaysScrollableScrollPhysics - 始终可滚动 physics: AlwaysScrollableScrollPhysics() // 组合使用 physics: BouncingScrollPhysics(parent: AlwaysScrollableScrollPhysics())

Sliver家族

// 布局类 SliverList SliverGrid SliverFixedExtentList SliverAnimatedList // 装饰类 SliverPadding SliverAppBar SliverPersistentHeader SliverToBoxAdapter // 特殊类 SliverFillRemaining SliverFillViewport SliverOpacity SliverAnimatedOpacity

自定义Scrollbar

Scrollbar( controller: _controller, thumbVisibility: true, // 始终显示 trackVisibility: true, // 显示轨道 thickness: 8.0, // 宽度 radius: Radius.circular(4), // 圆角 interactive: true, // 可交互 notificationPredicate: (notification) { // 过滤通知 return notification.depth == 0; }, child: ListView.builder( controller: _controller, itemCount: 100, itemBuilder: (context, index) => Text('Item $index'), ), )
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/26 16:10:14

jetson orin(jetpack6.2)安装gazebo和gazebo_ros_pkgs

目前 Debian/Ubuntu 官方仅提供了基于 Amd64 架构的 Gazebo 软件包,尚未发布 Arm64 版本。因此,在 Ubuntu 22.04 系统中无法通过官方源直接获取适用于 Arm64 架构的 Gazebo 安装包。 解决办法: 1.安装gazebo (1)换源安…

作者头像 李华
网站建设 2026/3/27 20:00:26

Scrapy 自定义命令与扩展:打造专属爬虫工具

Scrapy 作为 Python 生态中最强大的爬虫框架之一,其核心优势不仅在于内置的高效爬取能力,更在于高度的可扩展性。通过自定义命令和扩展(Extensions),你可以摆脱框架默认功能的限制,打造贴合自身业务需求的专…

作者头像 李华
网站建设 2026/3/27 12:38:01

【图像加密】基于差分扩展的缩略图保持加密技术附matlab代码

✅作者简介:热爱数据处理、建模、算法设计的Matlab仿真开发者。🍎更多Matlab代码及仿真咨询内容点击 🔗:Matlab科研工作室🍊个人信条:格物致知。🔥 内容介绍在数字化浪潮的席卷下,数…

作者头像 李华