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

NestedScrollView中的Flutter PageView body与SliverAppBar不隐藏appbar

NestedScrollView是Flutter中的一个可滚动视图组件,它可以包含多个子组件,并且可以在垂直方向上滚动。而SliverAppBar是一个可折叠的应用栏组件,它通常与CustomScrollView一起使用,可以实现类似于折叠效果的应用栏。

在使用NestedScrollView时,如果将PageView作为其body属性的子组件,同时希望在滚动时不隐藏SliverAppBar,可以通过以下方式实现:

  1. 将PageView包裹在SliverFillRemaining组件中,将其作为NestedScrollView的body属性的子组件。SliverFillRemaining会填充剩余的空间,并且不会影响SliverAppBar的显示。
代码语言:txt
复制
NestedScrollView(
  headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
    return <Widget>[
      SliverAppBar(
        // 设置SliverAppBar的属性
        // ...
      ),
    ];
  },
  body: SliverFillRemaining(
    child: PageView(
      // 设置PageView的属性
      // ...
    ),
  ),
)
  1. 如果希望PageView在滚动时也能隐藏SliverAppBar,可以将PageView包裹在SliverToBoxAdapter组件中,并将其作为CustomScrollView的slivers属性的子组件。这样可以将PageView作为一个可滚动的组件,同时也能与SliverAppBar一起进行协调隐藏。
代码语言:txt
复制
CustomScrollView(
  slivers: <Widget>[
    SliverAppBar(
      // 设置SliverAppBar的属性
      // ...
    ),
    SliverToBoxAdapter(
      child: PageView(
        // 设置PageView的属性
        // ...
      ),
    ),
  ],
)

以上是关于NestedScrollView中的Flutter PageView body与SliverAppBar不隐藏appbar的解决方案。在实际应用中,可以根据具体需求选择适合的方式来实现页面的布局和交互效果。

腾讯云相关产品和产品介绍链接地址:

  • NestedScrollView:https://pub.dev/packages/flutter/widgets/NestedScrollView-class
  • SliverAppBar:https://api.flutter.dev/flutter/material/SliverAppBar-class.html
  • CustomScrollView:https://api.flutter.dev/flutter/widgets/CustomScrollView-class.html
  • PageView:https://api.flutter.dev/flutter/widgets/PageView-class.html
  • SliverFillRemaining:https://api.flutter.dev/flutter/widgets/SliverFillRemaining-class.html
  • SliverToBoxAdapter:https://api.flutter.dev/flutter/widgets/SliverToBoxAdapter-class.html
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter 首页必用组件NestedScrollView

老孟导读:昨天Flutter 1.17版本重磅发布,新的版本主要是优化性能、修复bug,有人觉得此版本毫无亮点,但也从另一方面体现了Flutter目前针对移动端已经较为完善,想了解具体内容,文末有链接,...今天介绍的组件是NestedScrollView,大部分的App首页都会用到这个组件。 NestedScrollView 可以在其内部嵌套其他滚动视图的组件,其滚动位置是固有链接的。...内部的任何列表都不会相互作用 与外部ScrollView。...例如,浏览内部列表以滚动到顶部不会导致外部ScrollView中的SliverAppBar折叠以展开。...滚动隐藏AppBar 比如实现如下场景,当列表滚动时,隐藏AppBar,用法如下: NestedScrollView( headerSliverBuilder: (BuildContext context

4.3K10

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

题记 —— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精。 *** Flutter是谷歌推出的最新的移动开发框架。...Flutter NestedScrollView 滑动组件是用来处理复杂情况下的滑动应用场景,如向上滑动视图时,要折叠隐藏一部分内容,这时候就需要使用到 NestedScrollView 与 SliverAppBar...在本节中是使用 NestedScrollView 结合 SliverAppBar 与 TabBar 、TabBarView 实现的折叠头部效果undefined 【x1】微信公众号的每日提醒 随时随记...方法就是构建了一个滑动布局 NestedScrollView ,其中两部分,头部使用的是 SliverAppBar 来触发折叠效果, body 用来配置页面主体部分,代码如下: ///构建滑动布局...] body对应的是页面主体部分,使用 TabBarView 装载了三个 Widget ,当然在实际应用场景中,你也可以使用独立的 StatefulWidget 来使用,代码如下: TabBarView

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

    Flutter 也不会少,毕竟 Flutter 主打的也是 MaterialDesign 啊。...首先看下 SliverAppBar 的源码吧,其实和 AppBar 的参数差不多,只是多了一些比较特殊的属性 const SliverAppBar({ Key key, this.leading...SliverPersistentHeader Flutter 中,为我们提供了这么一个作为头部的部件 SliverPersistentHeader,这个部件可以根据滚动的距离缩小高度,有点类似 SliverAppBar...SliverAppbar 的阴影,主要用来提醒内部的内容低于 SliverAppBar (相当于给人一种物理层次感,否则很容易被认为,头部和内容是连接在一起的) 接下来看下 NestedScrollView...接着请注意代码中的那段 assert 中的文字 糟透了的翻译 X 5:sliverOverlapAbsorberHandleFor 传入的参数 context 中必须包含 NestedScrollView

    2.2K30

    不一样角度带你了解 Flutter 中的滑动列表实现

    本篇主要帮助剖析理解 Flutter 里的列表和滑动的组成,用比较通俗易懂的方式,从常见的 ListView到 NestedScrollView 的内部实现,帮助你更好理解和运用 Flutter 里的滑动列表...所以在 Flutter 里: ListView 使用的是 SliverFixedExtentList 或者  SliverList; GridView 使用的是 SliverGrid; PageView...RenderSliver 我们都知道 Flutter 中的整体渲染流程是 Widget -> Element -> RenderObejct -> Layer 这样的过程,而 「Flutter 里的布局和绘制逻辑都在...了解完 NestedScrollView 的布局和联动实现之外,最后简单介绍一下  SliverPersistentHeader , 因为经常在  NestedScrollView 里使用的  SliverAppBar...所以如果这时候不额外做一些处理,那么对于 body 而言,它的 paintOrigin 还是从最顶部开始而不是固定区域的下方。

    1.1K30

    不一样角度带你了解 Flutter 中的滑动列表实现

    本篇主要帮助剖析理解 Flutter 里的列表和滑动的组成,用比较通俗易懂的方式,从常见的 ListView 到 NestedScrollView 的内部实现,帮助你更好理解和运用 Flutter 里的滑动列表...所以在 Flutter 里: ListView 使用的是 SliverFixedExtentList 或者 SliverList; GridView 使用的是 SliverGrid; PageView...RenderSliver 我们都知道 Flutter 中的整体渲染流程是 Widget -> Element -> RenderObejct -> Layer 这样的过程,而 Flutter 里的布局和绘制逻辑都在...NestedScrollView 里使用的 SliverAppBar,本质上 SliverAppBar 的实现靠的就是 SliverPersistentHeader。...所以如果这时候不额外做一些处理,那么对于 body 而言,它的 paintOrigin 还是从最顶部开始而不是固定区域的下方。 ?

    2.2K51

    Flutter开发实战分析-animation_demo瞎复写总结

    以下代码基本参考于 flutter_gallery中的animation_demo示例。(可以结合本文看源码) 题外话:这个demo是最炫酷的了 ?...确定中间状态 tColumnToRow 整体的动画,在Flutter中有很方便的lerp函数可以确定中间的状态。只要传入我们进度的百分比就可以。这个百分比可以由滑动的过程中的offset传入。...自定义动画的过程 自定义动画的过程,在Flutter中其实相对简单。提供了很多帮助的计算方式。需要做的是确定要初始值,和最终值,中间的过度变量可以考虑使用lerp就可以完成。...监听事件 之前的文章,我们分析过Flutter中数据的传递。...添加BounceScrollPhysics,就实现ios中的弹性滚动了。 好的。这边文章,我们就暂时到这里。 下一遍文章,我们先介绍一个Flutter中整体的视图树,然后回顾一下我们遇到过的组件。

    2.5K30

    《Flutter》-- 6.高级组件

    参阅书籍: 《Flutter跨平台开发入门与实践》-- 向治洪(著) 6. 高级组件 6.1 可滚动组件 对于列表和长布局的显示溢出问题,可以使用Flutter提供的可滚动组件来处理。...6.1.1 Scrollable组件 在Flutter中,一个可滚动的组件直接或间接包含一个Scrollable组件,它是可滚动组件的基础组件。...在实际使用过程中,Flutter提供了SliverList、SliverGrid等可滚动组件的Sliver版本。...: AppBar(title: Text('高级组件--滑块切换组件')), body: PageView.builder( onPageChanged: (index...()中判断依赖的状态是否改变,如果已改变,则返回true并执行重绘操作,反之则返回false不执行重绘; 2)绘制应尽可能多地进行分层 因为复杂的自绘组件都是由很多功能构成的,如果都写在一个方法中,不利于阅读

    10.7K20

    Flutter 库:强大的下拉刷新上拉加载框架——EasyRefresh

    Flutter 库:强大的下拉刷新上拉加载框架——EasyRefresh 一、概述 1、简介 EasyRefresh 是一个用于 Flutter 应用程序的简单易用的下拉刷新和上拉加载框架。...它支持几乎所有的 Flutter 可滚动小部件。它的功能与Android 的 SmartRefreshLayout 非常相似,并吸收了许多第三方库的优点。...EasyRefresh 集成了各种样式的页眉和页脚,但没有任何限制,您可以轻松自定义它们。利用Flutter强大的动画功能,即使只是一个简单的控件也可以实现复杂的效果。...EasyRefresh的目标是为Flutter创建一个功能强大、稳定和成熟的下拉刷新框架。...: AppBar( title: Text('EasyRefresh 示例'), ), body: EasyRefresh( onRefresh:

    13600

    SliverAppBar

    在前面的文章中我们将到了Appbar的用户,它类似于Android中的toolbar,但是熟悉Android开发的童鞋应该知道在Android中还有个Collapsing Toolbar的东西,就是一个可以折叠的标题栏效果...接下来我们来介绍下SliverAppBar SliverAppBar ---- 我看还是先来看下SliverAppBar的构造方法 构造方法也是非常的简单,但是我们却不能直接使用它,由官方文档可以看到我们通常结合...首先我们使用了NestedScrollView中的headerSliverBuilder属性添加了SliverAppBar 然后我们设置展开的高度为200,不让标题栏随着滑动滚动出可视区域 我们使用flexibleSpace...来构建了一个可以滚动的区域 最后我们给NestedScrollView的body加了一个ListView 然后我们来看下效果: ?...但是有童鞋就问问了,我们怎么让这个SliverPersistentHeader中的内容(TabBar)不随着ListView的滚动而滑动呢?

    1.8K30

    6详解AppBar小部件

    由于它是一个如此常用的组件,因此 Flutter 为该功能提供了一个名为AppBar的专用小部件。 在本教程中,我们将通过一些实际示例向您展示如何在 Flutter 应用程序中自定义 AppBar。...以下是我们将介绍的内容: Flutter 中的 AppBar 是什么? 应用栏布局 自定义 AppBar Flutter 中的 AppBar 是什么?...AppBar 标题图片 默认情况title下,根据 Material 指南与 AppBar 的左侧对齐。...), Flutter AppBar 中心标题 actions actions是与 AppBar 右侧对齐的小部件列表。我们通常在用作按钮的应用程序中看到它们来触发下拉菜单、个人资料头像等。...关于 Flutter 的 AppBar 必须提供的所有内容的完整演练。我希望这篇文章能帮助你在未来所有的 Flutter 应用程序中创建漂亮的 AppBars。

    16.4K10

    flutter 起步

    flutter简介Flutter是谷歌的移动UI框架,可以运行在ios与android系统上,可以以完成app的开发,使用情况页面大多数涉及到flutter 开发的app 都是混合开发,占比并不多。...中的继承也有和Java不一样的地方:Flutter中的子类可以访问父类中的所有变量和方法,因为Flutter中没有公有、私有的区别上下文对象是整个APP Widget树结构中的Widget话柄,每个Wideget...Scaffold 有下面几个主要属性:appBar - 显示在界面顶部的一个 AppBar。body - 当前界面所显示的主要内容 Widget。...elevation → double - 控件的 z 坐标顺序,默认值为 4,对于可滚动的 SliverAppBar,当 SliverAppBar 和内容同级的时候,该值为 0, 当内容滚动 SliverAppBar...flexibleSpace → Widget - 一个显示在 AppBar 下方的控件,高度和 AppBar 高度一样,可以实现一些特殊的效果,该属性通常在 SliverAppBar 中使用。

    4.5K20

    【Flutter Widgets大全】电子书开源

    【Flutter Widgets大全】是老孟耗费大量精力整理的,总共有330多个组件的详细用法,开源到Github上,希望可以帮助到大家,开源不易,转发一下可不可以?。...,需要的时候进行查阅。...为了方便对比学习,我将相近或相反功能的组件整理到一个文件中,比如所有的 Button 类组件、弹出类组件等。 如果想系统的学习入门知识,请到 Flutter 老孟 实战 查看。...AnimatedPositioned 在线查看 AnimatedPositionedDirectional 在线查看 AnimatedSize 在线查看 AnimatedSwitcher 在线查看 AppBar...在线查看 SlideTransition 在线查看 Slider 在线查看 SliderTheme 在线查看 SliderThemeData 在线查看 SliverAnimatedList 在线查看 SliverAppBar

    1.2K10

    Flutter 入门指北之快速搭建界面(含Flutter知识体系)

    上一篇讲完 Flutter 中的一些基本部件,这篇就先填完上篇留下的没写的 AppBar 的坑,以及 Scaffold 其他参数的使用,在开始前,先补一张缩略版的脑图 ?...AppBar 这一部分,我们只关注 Scaffold 中的 AppBar 剩下的还是埋坑【坑4】( ?...duration 表示切换滚动的时长,curve 表示滚动动画的样式, // flutter 已经在 Curves 中定义许多样式,可以自行切换查看效果 _pageController.animateToPage...来展示内容,body 可以传入任何 Widget,里面就是你需要展示的界面内容 // 所以前面留下 Scaffold 中 body 部分的坑就解决了 body: PageView...能够使我们快速去搭建一个界面,但是,并不是所有的界面都需要 AppBar 这个标题,那么我们就不会传入 appBar 的属性,我们注释 _HomePageState 中 Scaffold 的 appBar

    1.7K20

    【Flutter】底部导航栏实现 ( BottomNavigationBar 底部导航栏 | BottomNavigationBarItem 导航栏条目 | PageView )

    组件 六、完整代码示例 七、相关资源 一、Scaffold 组件 ---- Flutter 中的 Scaffold 组件实现了基础的材料设计 ( Material Design ) 可视化布局结构 ;...key, this.appBar, // 顶部的标题栏 this.body, // 中间显示的核心部分 , 标题栏下面的部分都是 this.floatingActionButton...组件的主题 body 字段设置 PageView 组件 , 该组件主要设置 PageController?...controller 和 List children 字段 , PageController 用于控制 PageView 中的页面跳转 , children 中就是 PageView 封装的多个界面组件..., /// 都会根据当前点击的选项而改变 , /// 改变的时候有切换动画 /// 选中的状态下显示底部图标的文本 /// 不选中的状态下隐藏底部的文本内容 shifting

    6.2K50
    领券