IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Silver家族成员 -> 正文阅读

[移动开发]Silver家族成员

Silver家族成员

参考:

29Flutter Sliver家族_LJLThomson的博客-CSDN博客_flutter slivers大家族

https://segmentfault.com/a/1190000019902201

Sliver简介

通过silver相关组件可以实现,各种组合滑动效果;silver家族相关的组件包括:

1、CustomScrollView

2、SliverList

3、SliverGrid

4、SliverAppBar

5、SliverPersistentHeader

6、SliverToBoxAdapter

7、SliverFillRemaining

8、SliverPadding

9、SingleChildScrollView

CustomScrollView

CustomScrollView是Flutter提供的可以用来自定义滚动效果的组件,它可以像胶水一样将多个Sliver粘合在一起。

Eg:页面中同时存在一个List和一个Grid,由于各自的滚动效果是分离的,所以没法保证一致的滚动效果。使用CustomScrollView组件作为滚动容器,SliverList和SliverGrid分别替代List和Grid作为CustomScrollView的子组件,滚动效果再由CustomScrollView统一控制

CustomScrollView是一个Widget数组,在其slivers属性可放入各种silver组件。

?

SliverList,它只有一个delegate属性,可以用SliverChildListDelegate或SliverChildBuilderDelegate这两个类实现。前者将会一次性全部渲染子组件,后者将会根据视窗渲染当前出现的元素,其效果可以和ListView和ListView.build这两个构造函数类比。

(SliverGrid和SilverList用法一致)

SliverAppBar

AppBar是常用来构建一个页面头部Bar的组件,在CustomScrollView中与其对应的是SliverAppBar组件

?

  1. float:向下滑动时,即使当前CustomScrollView不在顶部,SliverAppBar也会跟着一起向下出现;
  2. snap:当手指放开时,SliverAppBar会根据当前的位置进行调整,始终保持展开或收起的状态;
  3. pinned:不同于float效果,当SliverAppBar内容滑出屏幕时,将始终渲染一个固定在顶部的收起状态组件。
  4. expandedHeight:展开状态下appBar的高度,即图中图片所占空间;
  5. flexibleSpace:空间大小可变的组件,Flutter给我们提供了一个现成的FlexibleSpaceBar组件,给我们处理好了title过渡的效果。

SliverPersistentHeader

SliverAppBar是基于SliverPersistentHeader实现sticky吸顶的效果。

SliverPersistentHeader最重要的一个属性是SliverPersistentHeaderDelegate,为此我们需要实现一个类继承自SliverPersistentHeaderDelegate。SliverPersistentHeader最重要的一个属性是SliverPersistentHeaderDelegate,为此我们需要实现一个类继承自SliverPersistentHeaderDelegate。

?

  1. minExtent:收起状态下组件的高度;
  2. maxExtent:展开状态下组件的高度;
  3. shouldRebuild:类似于react中的shouldComponentUpdate;
  4. build:构建渲染的内容。

在build方法中的shrinkOffset属性,它代表当前头部的滚动偏移量。我们可以根据它计算得到当前收起头部的背景颜色以及图标和文案的字体颜色,这样就能根据当前位置得到过渡效果

SliverToBoxAdapter

SliverPersistentHeader一般来说都是会展开/收起的(除非minExtent和maxExtent值相同),那么如果想要在滚动视图中添加一个普通的控件,那么就可以使用SliverToBoxAdapter来将各种视图组合在一起,放在CustomListView中。

?

SliverFillRemaining

这个部件一般用于最后填充用的,会占有一个屏幕的高度,可以在 child 属性加入需要展示的部件

SliverPadding

类似于padding控件,这里用在ilver中,为相关silver控件加上外边距。

SingleChildScrollView

SingleChildScrollView只应在期望的内容不会超过屏幕太多时使用,这是因为SingleChildScrollView不支持基于Sliver的延迟实例化模型,所以如果预计视口可能包含超出屏幕尺寸太多的内容时,那么使用SingleChildScrollView将会非常昂贵(性能差),此时应该使用一些支持Sliver延迟加载的可滚动组件,如ListView;

SingleChildScrollView中如果包含了ListView(listview数据固定),需要禁用ListView的物理滑动属性,同时设置包裹内容属性shrinkWrap为true。

?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:20:14  更:2022-05-24 18:22:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 0:46:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码