当前位置: 首页 > news >正文

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'), ), )
http://www.jsqmd.com/news/275041/

相关文章:

  • 基于蒙特卡洛的风电功率/光伏功率场景生成方法Matlab代码
  • 大数据毕设项目:基于django的蔬菜销售分析与预测可视化系统(源码+文档,讲解、调试运行,定制等)
  • 告别GPU依赖:深度剖析AI推理芯片市场,谁将主宰终端智能?
  • Python 实战:将 HTML 表格一键导出为 Excel(xlsx)
  • Python毕设项目推荐-基于Python的网络小说分析系统设计与实现【附源码+文档,调试定制服务】
  • 2026必备!10个AI论文工具,专科生轻松搞定论文写作!
  • REST 不仅仅是 CRUD:从 Roy Fielding 六大原则重识 API 设计的“灵魂”
  • 【课程设计/毕业设计】基于大数据+django+mysql的学习资源推送系统的设计与实现基于Django+大数据的学习资源推送系统【附源码、数据库、万字文档】
  • 数字化做完却没有价值?问题可能不在技术,而在架构
  • 学霸同款8个AI论文网站,本科生搞定毕业论文!
  • 【滤波跟踪】基于拓展卡尔曼滤波的移动机器人 2D 定位系统融合里程计和 GPS数据实时估计机器人的位姿附matlab代码
  • 大数据毕设项目推荐-基于Django+大数据的学习资源推送系统课程视频、电子书籍【附源码+文档,调试定制服务】
  • 【毕业设计】基于Django+大数据的学习资源推送系统(源码+文档+远程调试,全bao定制等)
  • 优雅的分组贪心|线段树二分
  • 【课程设计/毕业设计】基于Django的蔬菜销售分析与预测可视化系统基于django的蔬菜销售分析与预测可视化系统【附源码、数据库、万字文档】
  • 大数据毕设项目:基于Django+大数据的学习资源推送系统(源码+文档,讲解、调试运行,定制等)
  • 【毕业设计】基于django的蔬菜销售分析与预测可视化系统(源码+文档+远程调试,全bao定制等)
  • 数据即服务在大数据领域的创新应用与实践
  • C# 判断 AVIF 图片是否是 HDR、动图的方法
  • 小白必看!AR开发从入门到实战全攻略
  • 大数据BI工具的分类预测模型
  • jetson orin(jetpack6.2)安装gazebo和gazebo_ros_pkgs
  • 第7天敏捷冲刺日志
  • struts2 代码执行 (CVE-2016-4438)
  • 无线网络仿真:无线网络基础_(4).天线与传播特性
  • 使用 tsfresh 和 AutoML 进行时间序列特征工程
  • xlsx知识点
  • SLAM(Simultaneous Localization and Mapping,同步定位与地图构建)是机器人、自动驾驶、增强现实等领域的核心技术
  • 团队作业4——项目冲刺
  • 122.Java深入学习之JVM三