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

Flutter 首页必用组件NestedScrollView的示例详解

今天介绍的组件是NestedScrollView,大部分的App首页都会用到这个组件。 可以在其内部嵌套其他滚动视图的滚动视图,其滚动位置是固有链接的。...普通的ScrollView, 如果有一个Sliver组件容纳了一个TabBarView,它沿相反的方向滚动(例如,允许用户标签所代表的页面之间水平滑动,而列表则垂直滚动),则该TabBarView...例如,浏览内部列表以滚动到顶部不会导致外部ScrollView的SliverAppBar折叠以展开。...滚动隐藏AppBar 比如实现如下场景,当列表滚动时,隐藏AppBar,用法如下: NestedScrollView( headerSliverBuilder: (BuildContext context...其他属性 通过scrollDirection和reverse参数控制其滚动方向,用法如下: NestedScrollView( scrollDirection: Axis.horizontal, reverse

3.6K40

Flutter 首页必用组件NestedScrollView

今天介绍的组件是NestedScrollView,大部分的App首页都会用到这个组件。 NestedScrollView 可以在其内部嵌套其他滚动视图的组件,其滚动位置是固有链接的。...普通的ScrollView, 如果有一个Sliver组件容纳了一个TabBarView,它沿相反的方向滚动(例如,允许用户标签所代表的页面之间水平滑动,而列表则垂直滚动),则该TabBarView...例如,浏览内部列表以滚动到顶部不会导致外部ScrollView的SliverAppBar折叠以展开。...滚动隐藏AppBar 比如实现如下场景,当列表滚动时,隐藏AppBar,用法如下: NestedScrollView( headerSliverBuilder: (BuildContext context...Tab(text: '技术'), ], ), ), ), ]; }, body: TabBarView

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

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

因为 CustomScrollView 只允许传入 Sliver 部件,那么类似 Container 等普通部件就不可以使用了,那么这样就需要更多的 Sliver 组件才能完成视图,所以为了方便,直接通过...SliverPersistentHeader Flutter ,为我们提供了这么一个作为头部的部件 SliverPersistentHeader,这个部件可以根据滚动的距离缩小高度,有点类似 SliverAppBar...糟透了的翻译 X 1:一个内部能够嵌套其他滚动部件,并使其滚动位置联结到一起的滚动部件 /// The most common use case for this widget is a scrollable...assert 的文字 糟透了的翻译 X 5:sliverOverlapAbsorberHandleFor 传入的参数 context 必须包含 NestedScrollView SliverOverlapAbsorber...分析完源码后,例子的目标很明确,使用 SliverAppBar + TabBar + TabBarView,先看下最后的效果图吧 ?

2.1K30

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

Flutter NestedScrollView 滑动组件是用来处理复杂情况下的滑动应用场景,如向上滑动视图时,要折叠隐藏一部分内容,这时候就需要使用到 NestedScrollView 与 SliverAppBar...本节是使用 NestedScrollView 结合 SliverAppBar 与 TabBar 、TabBarView 实现的折叠头部效果undefined 【x1】微信公众号的每日提醒 随时随记...装载了三个 Widget ,当然实际应用场景,你也可以使用独立的 StatefulWidget 来使用,代码如下: TabBarView buildTabBarView() { return...(); ///这里的 3 代表有三个子 Item ///应用到 TabBarView ,对应其中3个子Item ///应用到 TabBar,对应其中32上子Item tabController...是配置 SliverAppBar 的 bottom 属性下,通过 buildTabBar 方法来封装的, 代码如下: TabBar buildTabBar() { return TabBar(

2.6K11

Flutter可滑动组件

Android,我们可以使用ListView或RecyclerView来实现,Ios,我们可以通过UITableView来实现。...Flutter,我们也有对应的列表Widget,就是ListView。 注意:Flutter里面想要实现滑动效果,都需要在组件外部包裹滚动的视图。...Flutter我们可以使用GridView来实现,使用方式和ListView也比较相似。...4.滚动事件监听 4.1 滚动事件监听介绍 对于滚动的视图,我们经常需要监听它的一些滚动事件,监听到滚动事件时执行对应的操作。...比如视图滚动到底部时,我们可能希望做上拉加载更多;比如滚动到一定位置时显示一个回到顶部的按钮,点击回到顶部的按钮,回到顶部;比如监听滚动什么时候开始,什么时候结束; Flutter监听滚动相关的内容由两部分组成

7.1K30

Flutter的AppBar、TabBar和TabController——顶部切换栏是如何实现的

顶部TabBar切换栏实现的第一种方式 Flutter,AppBar用于定义顶部的导航栏: Scaffold( appBar: AppBar( title: Text("AppBarPageDemo...centerTitle,标题是否居中显示(无论是iOS还是Android) isScrollable,顶部TabBar是否可以滚动。...2,TabBar的tabs的Tab元素,以及TabBarView的children的页面元素是一一对应的,对应好了之后就可以页面对应展示了。...但是有些时候,我们会遇到不可自定义原始的AppBar的场景,而我们又想实现顶部TabBar的效果,此时我们就可以页面再加一个Scaffold组件,然后这样就有两个AppBar了。...3,页面的state(_TabBarControllerPageState)要声明并初始化一个TabController实例 (_tabController) 4, TabBar 和 TabBarView

9.4K20

【Flutter】顶部导航栏实现 ( Scaffold | DefaultTabController | TabBar | Tab | TabBarView )

: 该组件是被导航的组件 , 设置多个布局结构 , 同时只能显示一个 ; DefaultTabController : 该组件用于关联控制 TabBar 和 TabBarView 组件 ; 界面组件...定义的 TabBar 和 TabBarView 就会被关联再一起 ; 注意三个相等的值 : DefaultTabController length 长度 等于 TabBar 子组件个数 等于 TabBarView...结合起来使用 ; TabBar Tab 子组件的个数 , TabController 的 length 长度 , TabBarView 中子组件的个数 , 三者必须相等 ; TabBar 构造函数...导航主体内容组件 ---- 显示 TabBar 当前选中的 Tab 标签对应的组件 ; TabBarView 初始化时 , 可以只为其设置 children 参数 , 类型是 List<Widget...TabBarView 显示的组件 class TabContent extends StatelessWidget { const TabContent({Key key, this.data})

2.5K40

小Q项目框架搭建及会动的Tabbar未完待续,持续更新

6去掉了pch,为了一些琐碎的头文件引用,加快了 编译速度!...习惯了pch的小伙伴们很不适应,比如我,添加方法如下: (1)创建command+n ----> PCH File (2)配置,工程的TARGETS里边Building Setting搜索Prefix...文件的工程路径,添加格式: “$(SRCROOT)/项目名称/pch文件名” 可能出现问题: Paste_Image.png 原因,路径不对,到工程路径下一级一级比对,做相应的加减(不会的自行百度...) pch文件添加常用的宏 如下: //16进制颜色 #define UIColorFromRGB(rgbValue) [UIColor \ colorWithRed:((float)((rgbValue...里面导入POP动画 pod 'pop' 然后终端 pod install 需要动画的地方加入如下代码: POPSpringAnimation *scaleAnimation = [POPSpringAnimation

70740

Flutter实现页面切换后保持原页面状态的3种方法

前言: Flutter应用,导航栏切换页面后默认情况下会丢失原页面状态,即每次进入页面时都会重新初始化状态,如果在initState打印日志,会发现每次进入时都会输出,显然这样增加了额外的开销,...它拥有一个固定的底部导航以及首页的顶部导航,可以看到不管是点击底部导航切换页面还是首页左右侧滑切换页面,之前的页面状态都是始终维持的,下面就具体介绍下如何在flutter实现类似喜马拉雅的导航效果...第一步:实现固定的底部导航 通过flutter create生成的项目模板,我们先简化一下代码,将MyHomePage提取到一个单独的home.dart文件,并在Scaffold脚手架添加bottomNavigationBar...底部导航,body展示当前选中的子页面。...然而,如果你的代码和我上面的类似,body并没有使用PageView或TabBarView,很不幸的告诉你,踩到坑了,这样是无效的,原因后面再详述。

2.5K30

Flutter | 容器组件

所以开发如果要对子组件进行限制,那么就一点要注意,因为一旦限制指定条件,子组件如果要进行相关自定义大小时将可能非常困难!...实际开发,当我们发现已经使用了 SizedBox 或者 ConstrainedBox 给定子元素宽高,但是仍然没有效果时,几乎可以断定:已经有父元素设置了限制!...Text 被放大后,占用的空间依然是红色的部分,所以第二个 Text 就会挨着红色的部分,最终就会出现重合 由于矩阵变换只会作用在绘制阶段,所以某些场景下, UI 需要变化是,可以通过矩阵变换来达到视觉上的...ScaffoldState ,通过 Scaffold.of() 可以获取腹肌最近的 Scaffold 组件的 State 对象 ToolBar 下面, AppBar 通过 Bottom 属性创建一个...TabBar 和 TabBarView 的 controller 都是同一个,正是如此, TabBar 和 TabBarView 正是通过一个 controller 来实现菜单切换和滑动状态同步的,效果如下

5.5K10
领券