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

如何在颤振的NestedScrollView中设置SliverAppBar的最小高度

在Flutter中,NestedScrollViewSliverAppBar通常一起使用来创建可滚动的页面,其中SliverAppBar可以作为可折叠的顶部栏。如果你想在颤振的NestedScrollView中设置SliverAppBar的最小高度,可以通过以下步骤实现:

基础概念

  • NestedScrollView:这是一个可以包含多个滚动视图的容器,通常用于实现复杂的滚动效果。
  • SliverAppBar:这是NestedScrollView中的一个特殊类型的AppBar,它可以随着滚动而折叠和展开。

相关优势

  • 灵活性SliverAppBar提供了丰富的配置选项,可以实现各种动态的UI效果。
  • 性能优化:与传统的AppBar相比,SliverAppBar在处理大量数据时更加高效。

类型

  • 固定高度:AppBar的高度是固定的。
  • 最小高度:AppBar有一个最小高度,当内容滚动到一定位置时,AppBar会收缩到这个最小高度。

应用场景

  • 新闻应用:顶部栏可以显示新闻分类,随着用户滚动,分类信息会折叠起来。
  • 社交媒体:用户可以滚动查看动态,顶部的个人资料栏会根据滚动位置动态变化。

解决问题的方法

要设置SliverAppBar的最小高度,可以使用minHeight属性。以下是一个示例代码:

代码语言:txt
复制
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: NestedScrollView(
          headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
            return <Widget>[
              SliverAppBar(
                title: Text('NestedScrollView with SliverAppBar'),
                expandedHeight: 200.0,
                minHeight: 50.0, // 设置最小高度
                flexibleSpace: FlexibleSpaceBar(
                  background: Image.asset(
                    'assets/image.jpg',
                    fit: BoxFit.cover,
                  ),
                ),
              ),
            ];
          },
          body: Center(
            child: Text('Scroll down to see the SliverAppBar collapse'),
          ),
        ),
      ),
    );
  }
}

参考链接

通过设置minHeight属性,你可以确保SliverAppBar在滚动时不会收缩到小于指定高度的值。这样可以避免颤振现象,提升用户体验。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

SliverPersistentHeader Flutter ,为我们提供了这么一个作为头部部件 SliverPersistentHeader,这个部件可以根据滚动距离缩小高度,有点类似 SliverAppBar...SliverPersistentHeaderDelegate 需要提供一个最大值,最小值,展示内容,以及更新部件条件 比如我们需要展示一个最大高度 300,最小高度 100,居中文字,那么我们可以这么写这个代理类...final double min; // 最小高度 final Widget child; // 需要展示内容 CustomSliverPersistentHeaderDelegate...SliverAppbar 阴影,主要用来提醒内部内容低于 SliverAppBar (相当于给人一种物理层次感,否则很容易被认为,头部和内容是连接在一起) 接下来看下 NestedScrollView...接着请注意代码那段 assert 文字 糟透了翻译 X 5:sliverOverlapAbsorberHandleFor 传入参数 context 必须包含 NestedScrollView

2.2K30

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

Flutter NestedScrollView 滑动组件是用来处理复杂情况下滑动应用场景,向上滑动视图时,要折叠隐藏一部分内容,这时候就需要使用到 NestedScrollViewSliverAppBar...在本节是使用 NestedScrollView 结合 SliverAppBar 与 TabBar 、TabBarView 实现折叠头部效果undefined 【x1】微信公众号每日提醒 随时随记...: true, ///是否随着滑动隐藏标题 floating: true, ///SliverAppBar展开高度...是配置在 SliverAppBar bottom 属性下,通过 buildTabBar 方法来封装, 代码如下: TabBar buildTabBar() { return TabBar(...,是在 SliverAppBar flexibleSpace 属性配置,当然就是使用了 FlexibleSpaceBar,代码如下: String imageUrl = "https:

2.7K11
  • SliverAppBar

    在前面的文章我们将到了Appbar用户,它类似于Androidtoolbar,但是熟悉Android开发童鞋应该知道在Android还有个Collapsing Toolbar东西,就是一个可以折叠标题栏效果...首先我们使用了NestedScrollViewheaderSliverBuilder属性添加了SliverAppBar 然后我们设置展开高度为200,不让标题栏随着滑动滚动出可视区域 我们使用flexibleSpace...来构建了一个可以滚动区域 最后我们给NestedScrollViewbody加了一个ListView 然后我们来看下效果: ?...我们把 pinned属性设置为false再看下效果 ?...很丑有没有,由于TabBar高度所以我们并不能让SliverAppBar滑动到顶部,所以要想实现随着SliverAppBar移动,把TabBar放在bottom也不是很合适

    1.8K30

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

    「本篇不是教你如何使用 API ,而是一些日常开发不常接触,但是很重要内容」。...了解完 NestedScrollView 布局和联动实现之外,最后简单介绍一下  SliverPersistentHeader , 因为经常在  NestedScrollView 里使用  SliverAppBar...,本质上 「SliverAppBar 实现靠就是 SliverPersistentHeader」。...,如下代码所示,在需要 floating 和  pinned  Sliver上,可以看到 paintExtent 和 layoutExtent 都有一个最小值。... SliverOverlapAbsorber 用于吸收 SliverPersistentHeader 高度; 使用 SliverOverlapInjector 将这个高度配置到 body 列表,让列表知道顶部存在一个固定高度区域

    1.1K30

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

    今天介绍组件是NestedScrollView,大部分App首页都会用到这个组件。 可以在其内部嵌套其他滚动视图滚动视图,其滚动位置是固有链接。...在普通ScrollView, 如果有一个Sliver组件容纳了一个TabBarView,它沿相反方向滚动(例如,允许用户在标签所代表页面之间水平滑动,而列表则垂直滚动),则该TabBarView...例如,浏览内部列表以滚动到顶部不会导致外部ScrollViewSliverAppBar折叠以展开。...SliverAppBar展开折叠 用法如下: NestedScrollView( headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled...controller为滚动控制器,可以监听滚到位置,设置滚动位置等,用法如下: _scrollController = ScrollController(); //监听滚动位置 _scrollController.addListener

    4K40

    Flutter 首页必用组件NestedScrollView

    今天介绍组件是NestedScrollView,大部分App首页都会用到这个组件。 NestedScrollView 可以在其内部嵌套其他滚动视图组件,其滚动位置是固有链接。...在普通ScrollView, 如果有一个Sliver组件容纳了一个TabBarView,它沿相反方向滚动(例如,允许用户在标签所代表页面之间水平滑动,而列表则垂直滚动),则该TabBarView...例如,浏览内部列表以滚动到顶部不会导致外部ScrollViewSliverAppBar折叠以展开。...reverse参数表示反转滚动方向,并不是由垂直转为水平,而是垂直方向滚动时,默认向下滚动,reverse设置false,滚动方向改为向上,同理水平滚动改为水平向左。...controller为滚动控制器,可以监听滚到位置,设置滚动位置等,用法如下: _scrollController = ScrollController(); //监听滚动位置 _scrollController.addListener

    4.2K10

    MCM数控机床切削监测与大数据分析系统构建(一)

    在金属切削加工过程,刀具与工件之间剧烈自激振动通常被称为“”。...因此,成为提高机床加工能力最主要障碍。 依照切削物理形成原因来划分基本上有3大类: 第1类是型耦合型; 第 2类是摩擦型; 第 3类是再生型。...型耦合型是指由于振动系统在 2个方向 上刚度相近,导致 2个固有型相接近时而引起 。摩擦型是指在切削速度方向上刀具与工件之间相互摩擦所引起。...,设置Modbus/TCP Server地址 7、设置显示窗口需要在远程监控界面显示测量曲线和测量参数。...of Minimum 截取到信号第一个幅值最小值相对于起始点时间 Frequency 信号频率 Magnititude 能量频率分布,能量最大值 FFT_Frequency 能量频率分布,能量最大值对应频率值

    2.6K40

    6详解AppBar小部件

    由于它是一个如此常用组件,因此 Flutter 为该功能提供了一个名为AppBar专用小部件。 在本教程,我们将通过一些实际示例向您展示如何在 Flutter 应用程序自定义 AppBar。...工具栏高度和不透明度 最后,我们有工具栏属性。工具栏包含文字,图标,按钮,和其他任何公司前景,除了小部件,Container和Image。...布局和添加小部件 如何为 AppBar 图标、文本、背景、高度、阴影颜色和工具栏设置主题 所以我们有了!...,高度和 AppBar 高度一样, // 可以实现一些特殊效果,该属性通常在 SliverAppBar 中使用 this.bottom,//一个 AppBarBottomWidget...用来在 Toolbar 标题下面显示一个 Tab 导航栏 this.elevation,//控件 z 坐标顺序,默认值 4,对于可滚动 SliverAppBar,当 SliverAppBar

    16.4K10

    CoordinatorLayout使用全解析

    enterAlwaysCollapsed:假设你定义了一个最小高度(minHeight)同时enterAlways也定义了,那么view将在到达这个最小高度时候开始显示,并且从这个时候开始慢慢展开,当滚动到顶部时候展开完...,它可以控制包含在CollapsingToolbarLayout控件(:ImageView、Toolbar)在响应layout_behavior事件时作出相应scrollFlags滚动事件(移除屏幕或固定在屏幕顶端...在NestedScrollView名字其实就可以看出他作用了,Nested是嵌套意思,而ToolBar基本需要嵌套使用。...假设你定义了一个最小高度(minHeight)同时enterAlways也定义了,那么view将在到达这个最小高度时候开始显示,并且从这个时候开始慢慢展开,当滚动到顶部时候展开完。...exitUntilCollapsed: 同样顾名思义,这个flag时定义何时退出,当你定义了一个minHeight,这个view将在滚动到达这个最小高度时候消失。

    2.1K20

    Android开发笔记(一百三十五)应用栏布局AppBarLayout

    那么Android5.0也同时给出了相应解决方案,即推出MaterialDesign库,通过该库AppBarLayout控件,对Toolbar加以包装,从而实现顶部工具栏动态变化效果。...NestedScrollView继承自FrameLayout,其用法与ScrollView相似,都必须且只能带一个直接子视图,都是允许视图上下滚动等等。...既然AppBarLayout高度是变化,那也得区分是滚一半还是滚全部。...3、exitUntilCollapsed : 该标志保证页面上至少能看到最小工具栏,不会完全看不到工具栏。具体滚动说明如下所示: 向上滚动:头部先往上收缩,一直滚到折叠最小高度。...具体滚动说明如下所示: 向上滚动:头部先往上收缩,一直滚到折叠最小高度。然后头部与主体先一起滚动,头部滚到位后,主体继续向上。 向下滚动:头部与主体先一起滚动,一直滚到头部折叠最小高度

    2K40

    Flutter之SliverAppBar

    SliverAppBar控件可以实现页面头部区域展开、折叠效果,类似于AndroidCollapsingToolbarLayout。 先看下SliverAppBar实现效果,效果图如下: ?...SliverAppBar中有一个非常重要参数flexibleSpace,flexibleSpace是SliverAppBar展开和折叠区域,flexibleSpace与expandedHeight一起使用..., expandedHeight表示flexibleSpace高度SliverAppBar( expandedHeight: 200.0, flexibleSpace...floating 设置为true时,向下滑动时,即使当前CustomScrollView不在顶部,SliverAppBar也会跟着一起向下出现 pinned 设置为true时,当SliverAppBar...内容滑出屏幕时,将始终渲染一个固定在顶部收起状态 snap 设置为true时,当手指放开时,SliverAppBar会根据当前位置进行调整,始终保持展开或收起状态,此效果在floating=true

    1.4K30

    当车削加工时出现刀打刀现象该如何处理?

    机床在加工过程震动,最常见于车床,镗床加工过程,造成工件表面有纹,返工率、废品率高,伴有刀打刀现象。...机床振动原因一般是机床–工件–刀具三个系统任一个或多个系统刚性不足,振动、刀产生时,我们该从哪些方面入手排查解决这类问题。 一、工件与刀具方面 1.工件方面 细长轴类外圆车削。...一般切削点离夹持点距离,如果长径比超过3的话就容易刀,可以考虑改变下工艺; 薄壁零件外圆车削; 箱形部品(钣金焊接结构件)车削; 超硬材质切削。...看一下你现在用是90度刀还是45度,试换一下。 另外,走刀(进给量)太小,也可能是一种产生诱因,可略调整加大一点。你调整一下转速、单刀切削深度、进给量试一下来排除共振点。...三、采用其他一些抑制对策 如果你主轴瓦已经真的紧到位了,工件也不是薄壁空心件或悬伸过长,卡盘夹紧也没问题。采用其他一些抑制对策。

    3K50

    flutter系列之:使用SliverList和SliverGird

    简介 在上一篇文章我们讲解SliverAppBar时候有提到过,Sliver组件一般都用在CustomScrollView。...要注意是SliverList并不能指定子widgetextent大小,如果你想指定List子widgetextent大小的话,那么可以使用SliverFixedExtentList: class...SliverList和SliverGird使用 有了上面介绍SliverList和SliverGird构造函数,接下来我们具体来看下如何在项目中使用SliverList和SliverGird。...默认情况下SliverList和SliverGird是需要和CustomScrollView一起使用,所以我们先创建一个CustomScrollView,在它slivers属性,放入一个SliverAppBar...100,运行可以得到下面的界面: 可以看到List子Widget高度发生了变化。

    53310

    【Flutter 专题】52 图解可折叠状态栏

    顶部状态栏在日常是必不可少,今天和尚尝试一下可折叠状态栏使用; 和尚以前在学习滑动冲突时曾用过 Sliver 系列 Widget,和尚这次尝试用 SliverAppBar...title:顶部标题 Widget 常见是文字标题等; centerTitle:true 为标题 Widget 居中,false 默认居左; actions:顶部右侧菜单组,可设置多个菜单按钮等;...true;官方推荐样例视频很好诠释出滑动过程列表滑动与顶部状态栏滑动变化; floating: false, pinned: false, snap: false floating: true...false, }) 和尚主要实现 SliverPersistentHeaderDelegate;需要实现四个方法: build 是页面布局效果,其中 shrikOffset 为滑动距离,直到设置折叠展开高度...; maxExtent 折叠状态栏展开最大高度; minExtent 折叠状态栏收起最小高度(pinned=true);当 maxExtent=minExtent 时,状态栏不折叠; shouldRebuild

    1.4K51
    领券