Flutter3.22.2中SliverAppBar设置背景色滑动显示颜色错误

在使用Flutter项目开发中,可能会有页面需要滑动收起标题栏的效果,一般都会使用SliverAppBar来实现,当项目的Flutter的SDK版本升级到3.4后,发现使用了SliverAppBar的页面,在滑动过程中,标题栏和状态栏的颜色不对,初始图:

滑动后(需要将头像收起,角色名称隐藏,只显示小头像和账号):

预期是要滑动收起和初始状态的颜色要一致,都应该是浅绿色,代码如下:

 NestedScrollView(
              controller: scrollController,
              headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) => [
                SliverAppBar(
                  backgroundColor: mColors.colorBgGreen4,

                  /// 右侧图标
                  actions: [
                    GestureDetector(
                      child: Image.asset(
                        'images/icon/icon_customer_service.png',
                        width: 24,
                        height: 24,
                      ).initMargin(right: 12),
                      onTap: () {
                      },
                    ),
                    //右上角消息
                    MessageColumn()
                  ],
                  toolbarHeight: 44,
                  centerTitle: true,
                  pinned: true,
                  elevation: 0,
                  snap: false,
                  floating: false,
                  forceElevated: innerBoxIsScrolled,

                  /// 整个头部背景高度
                  expandedHeight: 84,

                  /// 头部标题
                  title: ValueListenableBuilder(
                    valueListenable: showTitle,
                    builder: (BuildContext context, dynamic value, Widget? child) {
                      return AnimatedOpacity(
                        opacity: value ? 1 : 0,
                        duration: const Duration(milliseconds: 300),
                        child: Offstage(
                          offstage: value ? false : true,
                          child: Container(
                            height: 44,
                            child: GestureDetector(
                              child: Row(
                                crossAxisAlignment: CrossAxisAlignment.center,
                                children: [
                                  Container(
                                    margin: EdgeInsets.only(left: 12, right: 8),
                                    child: Image.asset(
                                      "images/icon/icon_user_avatar.png",
                                      width: 28,
                                    ),
                                  ),
                                  Text(
                                    '187****0182',
                                    style: TextStyle(
                                        color: mColors.colorTitle,
                                        fontSize: 16,
                                        fontWeight: FontWeight.bold),
                                  ),
                                ],
                              ),
                              onTap: () async {

                              },
                            ),
                          ),
                        ),
                      );
                    },
                  ),
                  onStretchTrigger: () async => () {
                    return;
                  },
                  stretch: true,

                  /// 可以往下拉的最大距离
                  stretchTriggerOffset: 1,
                  flexibleSpace: FlexibleSpaceBar(
                    /// 整个头部背景
                    background: Container(
                      color: mColors.colorBgGreen4,
                      height: 60,
                      width: double.infinity,
                      margin: MediaQuery.of(context).padding,
                      child: UserInfo2Column(),
                    ),
                  ),
                ),
              ],
              body: Container(
                color: Color(0xfff3f5f7),
                child: SingleChildScrollView(
                    child: Container(
                  decoration: BoxDecoration(
                      borderRadius: BorderRadius.only(
                          topLeft: Radius.circular(10.0), topRight:         Radius.circular(10.0))),
                  child: Container(
                    ),
                  ),
                )),
              ),
            )

无论怎么改都发现,似乎有一个百分百的颜色遮罩一样,backgroundColor设置成纯色,依然会有若隐若现的阴影,后来和大佬朋友讨论,说有没有可能是因为flutter版本升级后的版本差异,说干就干,将sdk版本降低到3.4以前,确实没有这个问题了。

怎么解决了,查阅一番资料后发现,3.4以后,APP的默认样式ThemeData改成了Material形式的,在项目入口处将MaterialApp的ThemeData添加一个参数useMaterial3: false,就完美解决了:

 MaterialApp(
          ///安卓切到后台会不显示app名字,需要加此参数
          title: 'xxxx',
          theme: ThemeData(
            useMaterial3: false,//添加此参数解决问题
            colorScheme: const ColorScheme.light(),
          ))

这个参数是什么意思呢,文档的解释:

A temporary flag that can be used to opt-out of Material 3 features

意思就是是否使用Material 3的样式,默认是true,后续高版本可能会取消这个参数的设置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/913432.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Odoo | 免费开源ERP:汽车及零配件行业信息化解决方案

文 / 开源智造 Odoo亚太金牌服务 概述 围绕汽车行业产业链上下游企业的整体业务主线,提供面向汽车主机厂整车个性化制造解决方案,产业链上下游一体化协同解决方案,数字化精益制造解决方案、全价值链质量管理解决方案,数字化运营解…

目前对于后期的打算

在完成了 Python 基本语法的学习后,我犹如推开了编程世界的一扇大门,初窥门径却也深知前方还有广袤无垠的知识天地等待我去探索。Python 作为一门广泛应用于软件开发、数据分析和人工智能等领域的高级编程语言,在当今数字化时代具有举足轻重的…

React中右击出现自定弹窗

前言 在react中点击右键,完成阻止浏览器的默认行为,完成自定义的悬浮框(Menu菜单). 版本 "react": "^18.2.0", "umijs/route-utils": "^4.0.1", "antd": "^5.18.1", "ant-design/pro-components": &q…

Elasticsearch如果集群出现节点故障,我应该如何快速定位问题?

当 Elasticsearch (ES) 集群发生故障时,快速定位问题源头非常重要。Elasticsearch 是一个分布式系统,故障可能由多种原因引起,涉及到硬件、配置、网络、集群本身的健康状况等多个层面。以下是一些定位问题的步骤和工具: 检查集群…

【Docker】Docker基础及docker-compose

一、Docker下载 更新yum包 yum update 安装需要的软件包( yum-util 提供yum-config-manager功能,后两个是devicemapper驱动依赖) yum install -y yum-utils device-mapper-persistent-data lvm2 设置stable镜像仓库(使用阿里…

Linux:理解动静态库

一、前言 如果我们写了一些方法想给别人用??有什么办法呢?? ——>(1)我直接把头文件和源文件给他(.c.h) ——>这样会让别人轻易看到你的实现 (2)把源文件打包成库&#xff…

快速了解SpringBoot 统一功能处理

拦截器 什么是拦截器: 拦截器是Spring框架提供的重要功能之一,主要进行拦截用户请求,在指定方法前后,根据业务需求,执行预先设定的代码。 也就是说,允许开发⼈员提前预定义⼀些逻辑,在⽤⼾的请求响应前后执⾏.也可以…

随着最新的补丁更新,Windows 再次变得容易受到攻击

SafeBreach专家Alon Leviev发布了一款名为 Windows Downdate的工具,可用于对Windows 10、Windows 11 和 Windows Server 版本进行降级攻击。 这种攻击允许利用已经修补的漏洞,因为操作系统再次容易受到旧错误的影响。 Windows Downdate 是一个开源Pyth…

Linux笔记-对Linux环境变量的进一步认识(2024-08-09)

此篇公开到互联网上的时间是:2024-11-11 主要是PATH和LD_LIBRARY_PATH。 基本概念 在 Linux 中,PATH 和 LD_LIBRARY_PATH 是两个不同的环境变量,它们的作用和使用场景有所不同。 PATH 作用:用来指定可执行文件的搜索路径。当你…

Linux操作系统之DHCP服务部署与配置

一、实验目的 1、理解DHCP的定义和工作原理; 2、掌握DHCP服务器的配置方法。 二、实验环境 1台PC、VMware虚拟机、3个CentOS7操作系统 三、实验步骤及内容 1、使用yum安装dhcp; 图1 安装DHCP服务 图2 查看DHCP是否安装 2、修改VM中虚拟网络编辑器…

优化时钟网络之时钟抖动

Note:文章内容以Xilinx 7系列FPGA进行讲解 1、什么是时钟抖动 时钟抖动就是时钟周期之间出现的偏差。比如一个时钟周期为10ns的时钟,理想情况下,其上升沿会出现在0ns,10ns,20ns时刻,假设某个上升沿出现的时…

第三十六章 Vue之路由重定向/404页面设置/路径模式设置

目录 一、路由重定向 1.1. 使用方式 1.2. 完整代码 1.2.1. main.js 1.2.2. App.vue 1.2.3. index.js 1.2.4. Search.vue 1.2.5. Home.vue 1.3. 运行效果 二、设定404错误页面 2.1. 使用方式 2.2. 完整代码 2.2.1. index.js 2.2.2. NotFound.vue 2.2.3. 运行效…

PostgreSQL的奥秘:深入探究事务与锁的秘密世界

PostgreSQL事务 1. 概述 在数据库系统中,事务(Transaction)是执行数据库操作的最小逻辑单位。它确保了一组操作的完整性和一致性。事务可以通过显式的 BEGIN、COMMIT 和 ROLLBACK 语句块来控制,也可以在自动提交模式&#xff08…

Three.js 搭建3D隧道监测

Three.js 搭建3D隧道监测 Three.js 基础元素场景scene相机carema网络模型Mesh光源light渲染器renderer控制器controls 实现3d隧道监测基础实现道路实现隧道实现多个摄像头点击模型进行属性操作实现点击模型发光效果 性能监视器stats引入使用 总结完整代码 我们将通过three.js技…

netstat中sendq/recvq用于排查发送端发送数据的问题

web同事开发了一个用于接收syslog数据的服务器,不清楚web的开发方式,用来联调的发送端是我们的C模块 反馈syslog udp形式接收正常,速度正常,数量也正常,syslog tcp形式接收开始比较快后面越来越慢,并且知道…

基于python主观题自动阅卷系统毕业设计项目

基于python主观题自动阅卷系统毕业设计项目 大家好,我是陈辰学长,一名在 Java 圈辛勤劳作的码农。今日,要和大家分享的是一款基于python主观题自动阅卷系统毕业设计。项目源码以及部署相关事宜,请联系陈辰学长,文末会…

SparkSql读取数据的方式

一、读取普通文件 方式一:给定读取数据源的类型和地址 spark.read.format("json").load(path) spark.read.format("csv").load(path) spark.read.format("parquet").load(path) 方式二:直接调用对应数据源类型的方法 …

LSTM+LightGBM+Catboost的stacking融合模型

基本介绍 针对目前大部分数据同时具有特征连续和特征不连续的特点,将神经网络模型如LSTM和回归树模型如XGboost,基于stacking集成学习原理进行融合 附有模型评价指标R2、RMSE、MAE、MSE,代码包含注释,可以直接运行。 融合过程 在机器学习中…

重学 Android 自定义 View 系列:动手实现专属 TextView

前言 前面一篇介绍了自定义View的基础概念(皮毛),接下来全部是自定义View实战,让我们一起开启自定义View之旅吧! 1. 实现目标 本篇将实现一个自定义的TextView,通过自定义属性让我们可以配置文本内容、颜色、字体大小。主要是掌…

多用户商城系统的功能及设计和开发

多用户商城系统的功能及设计与开发(基于 PHP MySQL) 在现代电子商务平台的开发中,PHP MySQL 是一对非常流行且高效的技术栈。PHP作为服务器端脚本语言,结合MySQL数据库,可以高效地处理多用户商城系统的各种需求。本…