NestedScrollView 在逻辑上将可滚动组件分为了 header 和 body 两部分,header 部分我们可以认为是外部可滚动组件(outer scroll view),可以认为这个可滚动组件就是 CustomScrollView ,所以它只能接收 Sliver,我们通过headerSliverBuilder来构建一个 Sliver 列表给外部的可滚动组件;而 body 部分可以接收任意的可滚动组件,该...
直接设置 home 进入NestedScrollPage界面 最后完整代码: lib/app_bar.dart import 'package:flutter/material.dart'; class MyCustomAppBar extends StatelessWidget implements PreferredSizeWidget { final Widget child; const MyCustomAppBar({super.key, required this.child}); @override Widget build(BuildContext c...
NestedScrollView和CustomScrollView都是支持自定义滚动视图的 Widget。它们的区别在于,CustomScrollView可以通过添加多个Sliver来实现复杂的滚动视图效果,而NestedScrollView则是将多个滚动视图嵌套在一起,并提供了一些方便的接口来协调它们之间的滚动。因此,NestedScrollView的使用场景更加适合于多个可滚动区域之间需要协调滚动的情况。
目录SingleChildScrollView(可滑动 View)ListView(列表 View)GridView(网格 View)CustomScrollView(自定义滑动 View)ScrollController(控制器)SingleChildScrollView(可滑动 View)SingleChildScrollView 类似 Android 中的 scrollvie flutter android Text ide Android flutter NestedScrollView和listView滑动冲突 本文章为作者在学...
原因是:CustomScrollView 组合 Sliver 的原理是为所有子 Sliver 提供一个共享的 Scrollable,然后统一处理指定滑动方向的滑动事件,如果 Sliver 中引入了其他的 Scrollable,则滑动事件便会冲突。上例中 PageView 之所以能正常工作,是因为 PageView 的 Scrollable 只处理水平方向的滑动,而 CustomScrollView 是处理垂直方向的...
比如之前讲Hero的时候提到的下面这个界面,使用普通的GridView的话是没法实现的,我们选择使用CustomScrollView,然后在slivers属性中添加子控件,在这个例子里,我们可以用SliverToBoxAdapter来做HeaderView,GridView来做主体布局,整体为一个CustomScrollView,完全不会出现任何滑动冲突的问题。
Flutter中常用的滑动布局 ScrollView 有 SingleChildScrollView、NestedScrollView、CustomScrollView。 SingleChildScrollView 用来处理简单可滑动的页面布局视图,如一般的数据详情页面,当内容足够多时,一屏显示不下时,就需要滑动处理。 NestedScrollView 滑动组件是用来处理复杂情况下的滑动应用场景,如向上滑动视图时,要折叠隐藏...
通过scrollDirection和reverse参数控制其滚动方向,用法如下:NestedScrollView( scrollDirection: Axis.horizontal, reverse: true, ...)scrollDirection滚动方向,分为垂直和水平方向。reverse参数表示反转滚动方向,并不是由垂直转为水平,而是垂直方向滚动时,默认向下滚动,reverse设置false,滚动方向改为向上,同理...
CustomScrollView是Flutter中的一个可定制的滚动视图控件,它允许开发者自定义滚动行为和外观。通过使用CustomScrollView,开发者可以创建具有多种滚动效果的界面,例如列表、网格、瀑布流等。 滚动控制器是CustomScrollView的一个重要属性,它用于控制滚动视图的滚动行为。通过滚动控制器,开发者可以监听滚动事件、控制滚动位置、...
NestedScrollView 可以在其内部嵌套其他滚动视图的组件,其滚动位置是固有链接的。 在普通的ScrollView中, 如果有一个Sliver组件容纳了一个TabBarView,它沿相反的方向滚动(例如,允许用户在标签所代表的页面之间水平滑动,而列表则垂直滚动),则该TabBarView内部的任何列表都不会相互作用 与外部ScrollView。例如,浏览内部列表以...