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

Flutter之SliverAppBar

SliverAppBar控件可以实现页面头部区域展开、折叠效果,类似于Android中CollapsingToolbarLayout。 先看下SliverAppBar实现效果,效果图如下: ?...SliverAppBar控件需要和CustomScrollView搭配使用,SliverAppBar要通常放在slivers第一位,后面接其他sliver控件。...: FlexibleSpaceBar( ), ), SliverAppBar其他常用属性说明如下: 属性 说明 leading 左侧控件,通常情况下为..."返回"图标 title 标题,通常为Text控件 actions 右侧控件 flexibleSpace 展开和折叠区域 bottom 底部控件 elevation‍ 阴影 expandedHeight...内容滑出屏幕时,将始终渲染一个固定在顶部收起状态 snap 设置为true时,当手指放开时,SliverAppBar会根据当前位置进行调整,始终保持展开或收起状态,此效果在floating=true

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

Flutter NestedScrollView实现一个经典滑动折叠头部图片效果

题记 —— 执剑天涯,从你点滴积累开始,所及之处,必精益求精。 *** Flutter是谷歌推出最新移动开发框架。...在本节中是使用 NestedScrollView 结合 SliverAppBar 与 TabBar 、TabBarView 实现折叠头部效果undefined 【x1】微信公众号每日提醒 随时随记...TabController 是绑定 TabBarView 与 TabBar 联动,当然 TabBar是配置在 SliverAppBar bottom 属性下,通过 buildTabBar 方法来封装...,是在 SliverAppBar flexibleSpace 属性中配置,当然就是使用了 FlexibleSpaceBar,代码如下: String imageUrl = "https:...buildFlexibleSpaceBar() { return FlexibleSpaceBar( // title: Text("FlexibleSpaceBar

2.6K11

Flutter 组件集录 | FlexibleSpaceBar 组件是怎么炼成

前言: 问题引入 FlexibleSpaceBar 是一个和 SliverAppBar 共生组件,一般不单独使用。...那问题来了,如何 全部笔记 标题有缩放效果,下面的副标题在滑动过程中一直保持不变呢?或者我们如何监听滑动分率,实现一些自定义变换效果呢?...所以摆在我们面前第一个问题是: FlexibleSpaceBar 组件标题如何 实现缩放 ?...探索: FlexibleSpaceBar 组件是如何感知滑动数据? 从上面效果中可以看出,SliverAppBar 滑动距离和剩余空间比值,会作为缩放数值依据。...那么摆在我们面前第一个问题是: FlexibleSpaceBar 组件是如何感知 滑动数据

75030

Flutter | Slivers 系列

,等这种就可以直接使用 SliverAppBar,SliverList 和 SliverGrid Slivers 不是单独指一个组件,而是指一个系列,所以以 Sliver 开头组件都是这个系列,但是他们都只能作用于...常用到 Sliver 有,SliverAppbar,SliverList,SliverGrid,SliverToBoxAdapter 等 由于 CustomScrollView 子组件只能是 Sliver...在 slivers 系列中,SliverAppbar 可以说是使用频率比较高组件了,SliverAppbar 为应用栏提供了自定义滚动行为,下面我们来看一下 class _MyHomePageState...SliverAppbar,并没有实现任何特殊效果,默认效果如下: 可以看到在滑动过程中,SliverAppbar 被顶上去了,这也是非常正常。...区别就是在滑动时候 SliveAppbar 底部会有一点点影子 snap:在滑动停止之后,导航会自动全部显示出来,需要注意是必须搭配 floating 一起使用,如下: SliverAppBar

1.4K11

Flutter入门指北(Part 8)之Sliver 组件及NestedScrollView

首先看下 SliverAppBar 源码吧,其实和 AppBar 参数差不多,只是多了一些比较特殊属性 const SliverAppBar({ Key key, this.leading...SliverPadding 那么在 CustomScrollView 中部件之间如何设置间距呢,可能你会想到用 SliverToBoxAdapter 包裹一个 Padding 来处理,当然没问题。...糟透了翻译 X 2:最常用情况,就是在其 headerSliverBuilder 中使用携带 TabBar SliverAppBar(就是使用 SliverAppBar bottom 属性添加...SliverAppbar 阴影,主要用来提醒内部内容低于 SliverAppBar (相当于给人一种物理层次感,否则很容易被认为,头部和内容是连接在一起) 接下来看下 NestedScrollView...` 重叠部分出来,否则会被遮挡 SliverOverlapInjector(

2K30

Flutter开发实战分析-pesto_demo解析

SliverAppBarflexibleSpace来存放appBar内显示其他控件 默认 SliverAppBarpined为false,故他会跟着滚上去。...再次修改 既然这样,我们就不能用自带来完成效果了。再次观察预期效果,发现,关键点:背后图片是不动。 所以我们想,图片整个放在背后,appBar只是一个透明遮罩!...我们这里需要根据滚动量去改变FlexibleSpaceBar内我们创建logo和图标的大小。...题外话:FlexibleSpaceBar实现方式和这种方式不同。...看到这样一个,不属于自带效果动画,我们刚刚开始确实无法入手。 遇到这样方法,最简单也是最耗时方式就是降维。就像本编文章一样,花了大量事件,先完成静态简单熟悉页面。再完成动态效果。

2.3K20

flutter系列之:使用SliverList和SliverGird

简介 在上一篇文章我们讲解SliverAppBar时候有提到过,Sliver组件一般都用在CustomScrollView中。...除了SliverAppBar之外,我们还可以为CustomScrollView添加List或者Grid来实现更加复杂组合效果。 今天要向大家介绍就是SliverList和SliverGird。...SliverList和SliverGird使用 有了上面介绍SliverList和SliverGird构造函数,接下来我们具体来看下如何在项目中使用SliverList和SliverGird。...默认情况下SliverList和SliverGird是需要和CustomScrollView一起使用,所以我们先创建一个CustomScrollView,在它slivers属性中,放入一个SliverAppBar...snap: false, floating: false, expandedHeight: 200.0, flexibleSpace: FlexibleSpaceBar

82230

flutter系列之:使用SliverList和SliverGird

简介 在上一篇文章我们讲解SliverAppBar时候有提到过,Sliver组件一般都用在CustomScrollView中。...除了SliverAppBar之外,我们还可以为CustomScrollView添加List或者Grid来实现更加复杂组合效果。 今天要向大家介绍就是SliverList和SliverGird。...SliverList和SliverGird使用 有了上面介绍SliverList和SliverGird构造函数,接下来我们具体来看下如何在项目中使用SliverList和SliverGird。...默认情况下SliverList和SliverGird是需要和CustomScrollView一起使用,所以我们先创建一个CustomScrollView,在它slivers属性中,放入一个SliverAppBar...snap: false, floating: false, expandedHeight: 200.0, flexibleSpace: FlexibleSpaceBar

49610

Flutter | 滚动组件,ListView,GridVIew等

,比如用户滑动完抬起手指后,继续执行动画;或者滑动到边界之后如何显示。...在 ListView 中指定 itemExtent 比子组件自己决定吱声长度会更有效,因为指定后,滚动系统可以提前知道列表长度,而无需每次构建子组件是都去计算一下,尤其是在滚动位置频繁变化时(滚动系统需要频繁去计算列表高度...但是由于 listView 高度是固定,就会导致底部留白,这种情况可以使用屏幕高度 减去状态类,导航栏,头部高度。...:在最开始时候说过 sliver 是一种延时初始化模型,只有当 Sliver 出现在视口时才会去构建他,但是 Sliver 版 SliverList,SliverGrid 自身是不能滚动,所以他们子项就会失去延时初始化作用...:SliverAppBar 对应 AppBar,两者不同之处在于 SliverAppBar 可以集成到 CustomScrollView 中,SliverAppBar 可以结合 FlexibleSpaceBar

8.4K20

UITableView在Flutter中是什么?

经分析得出,要实现这样需求,我们需要两个Sliver:作为头图SliverAppBar,与作为列表SliverList。...flexibleSpace 可以背景图显示在SliverAppBar下方,高度和SliverAppBar一样; 而在创建SliverList时,通过 SliverChildBuilderDelegate...接下来我们考虑一个更加复杂问题:在某些情况下,我们希望获取视图滚动信息,并进行相应控制。比如,列表是否已经滑到底()了?如何快速回到列表顶部?列表顶部是否已经开始,或者是否已经停下来了?...介绍完了如何通过ScrollController来监听ListView滚动信息,以及怎样进行滚动控制之后,接下来我们再来看看如何获取ScrollNotification通知,从而感知ListView各类滚动事件...为了节省性能,对于定高列表项视图,提前指定itemExtent比子Widget自己决定要更高效。

5.5K10

Flutter可滑动组件

如果我们想要在一个页面中,同时包含多个可滚动组件,且使它们滑动效果能统一起来,比如一个滑动视图中包括一个列表视图(ListView),一个网格视图(GridView),且他们滑动效果统一。...这里使用官方示例程序,将SliverAppBar+SliverGrid+SliverFixedExtentList做出如下界面: class HomeContent extends StatelessWidget...比如视图滚动到底部时,我们可能希望做上拉加载更多;比如滚动到一定位置时显示一个回到顶部按钮,点击回到顶部按钮,回到顶部;比如监听滚动什么时候开始,什么时候结束; 在Flutter中监听滚动相关内容由两部分组成...ScrollController可以通过initialScrollOffset设置初始位置,也可以监听到滚动位置,但无法监听到开始滚动与结束滚动事件。...DefaultTabController是一个Widget组件,后面示例中可以看到如何对其进行使用。 5.2 TabBar介绍 源码分析: const TabBar({ Key?

7K30
领券