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,后续高版本可能会取消这个参数的设置。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

vim 编辑器

1. 学习 vim 的目的 在工作中,要对 服务器 上的文件进行 简单 的修改,可以使用 ssh 远程登录到服务器上,并且使用 vim 进行快速的编辑即可常见需要修改的文件包括:源程序配置文件,例如 ssh 的配置文件 ~/.ssh/config …

瑞派宠物医院轮值总裁胡文强受邀出席第三届宠物产业大会

中国宠物产业蓬勃发展,成为推动国民经济持续增长的重要力量,宠物市场规模持续扩大。为进一步推动宠物产业的创新驱动,加强产业上下游深度交流和协同发展,中国畜牧业协会宠物产业分会于2024年10月15-17日在浙江杭州召开第三届宠物产…

Linux云计算 |【第五阶段】CLOUD-DAY7

主要内容: 在kubernetes平台上理解掌握各种控制器的用法:掌握kubectl管理命令、掌握POD原理、掌握集群调度的规则、熟悉控制器资源文件; 一、kubectl 常用命令 Kubectl是用于控制Kubernetes集群的命令行工具; - 格式&#xff1…

[java][框架]springMVC(1/2)

目标 知道SpringMVC的优点编写SpringMVC入门案例使用PostMan发送请求掌握普通类型参数传递掌握POJO类型参数传递掌握json数据参数传递掌握响应json数据掌握rest风格快速开发 一、SpringMVC简介 1 SpringMVC概述 问题导入 SpringMVC框架有什么优点? 1.1 Spring…

dns主从服务器的配置

主从dns服务器上都要: 关闭防火墙: [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 挂载和下载bind [rootlocalhost ~]# mount /dev/sr0 /mnt [rootlocalhost ~]# dnf install bind -y 主服务器配置: [rootlo…

【大咖云集,院士出席 | ACM独立出版】第四届大数据、人工智能与风险管理国际学术会议 (ICBAR 2024,11月15-17日)--冬季主会场

第四届大数据、人工智能与风险管理国际学术会议 (ICBAR 2024)--冬季主会场 2024 4th International Conference on Big Data, Artificial Intelligence and Risk Management 官方信息 会议官网:www.icbar.net 2024 4th International Conference on Big Data, Art…

linphone sdk sip音视频通话高级教程

本文主要基于c接口讲解linphone结合freeswitch在多平台的运用。大纲如下 linphone sdk下载地址sdk导入本文基于console程序演示,qt工程也行简单的音频呼叫,sip服务器使用freeswitch音频设置(设备、增益、铃声、回声消除、编码等)视频呼叫 默认有vp8 这里导入下h264视频设置(…

【Jenkins】 上传docker包并推送到远程仓库

文章目录 1. 前置工作安装和配置Jenkins设置Docker环境 2. 相关配置流程创建项目配置参数 1. 前置工作 安装和配置Jenkins 在开始使用Jenkins之前,需要确保已经安装和配置了Jenkins服务器。您可以按照以下步骤进行安装和配置: 下载Jenkins并安装&…

OBOO鸥柏丨传媒广告行业的创新应用解决数字技术短板

在新媒体文化传媒广告行业,如何吸引受众的注意力并有效传达信息一直是行业技术型数字化媒体转型关注的重点。OBOO鸥柏立式广告机作为这一领域的创新显示产品新技术,搭载VS6.0/满天星(MTSTAR)信息发布系统网络云平台技术科技,以其独特的技术优…

windows家庭版安装docker环境步骤-家庭版

1.家庭版没有虚拟化设置,下面代码保存到bat后缀文件,然后管理员权限执行 pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt for /f %%i in (findstr /i . hyper-v.txt 2^>nul) do dism /online /nore…

SQL Server身份验证模式

SQL Server是一个广泛使用的关系数据库管理系统,通常使用两种身份验证模式:Windows身份验证和SQL Server身份验证。理解这些身份验证方式的概念与更改方式的操作,对于数据库管理员和开发者至关重要。本文将详细介绍身份验证方式的概念以及如何…

蓝桥杯-网络安全比赛题目-遗漏的压缩包

小蓝同学给你发来了他自己开发的网站链接, 他说他故意留下了一个压缩包文件,里面有网站的源代码, 他想考验一下你的网络安全技能。 (点击“下发赛题”后,你将得到一个http链接。如果该链接自动跳转到https,…

【Git】Liunx环境下Git的使用:“克隆,提交,推送“

目录 一、常用参数 二、我们为什么要使用Git? 三、创建远程仓库 第一步:创建对应代码托管平台账号。 第二步:在托管平台创建仓库 第三步:完善仓库内容(选择性使用) 开源和私有 四、克隆远程仓库到本…

entos7离线安装xrdp和图形化桌面

1、查看Linux系统环境 cat /etc/os-release NAME"CentOS Linux" VERSION"7 (Core)" ID"centos" ID_LIKE"rhel fedora" VERSION_ID"7" PRETTY_NAME"CentOS Linux 7 (Core)" ANSI_COLOR"0;31" CPE_NAME…

Qt学习笔记(三)网络编程

系列文章目录 Qt开发笔记(一)Qt的基础知识及环境编译(泰山派) Qt学习笔记(二)Qt 信号与槽 Qt学习笔记(三)网络编程 文章目录 系列文章目录前言一、Qt网络模块二、TCP网络的编写2.1 …

uni-app发起请求以及请求封装,上传及下载功能(六)

文章目录 一、发起网络请求1.使用及封装2. https 请求配置自签名证书3.拦截器 二、上传下载1.上传 uni.uploadFile(OBJECT)2. 下载 uni.downloadFile(OBJECT) 一、发起网络请求 uni-app中内置的uni.request()已经很强大了,简单且好用。为了让其更好用,同…

快速理解软件开源协议,以及如何选择协议

一、开源协议介绍 开源协议,是一个用来对软件二次分发进行限制和规范的条文规定,用户在使用他人开源代码的时候,可以根据作者选取的LICENSE获知自己能够有哪些权利去处理从原作者哪里拿到的代码。开源协议是开源社区运作的基石,在…

【读书笔记/深入理解K8S】集群网络

前言 上一章讲了集群控制器的一个大概的原理,这一章讲一下集群网络。网络是集群通信的载体,因为该书是阿里云团队出品的,所以也以阿里云的集群网络方案为例,其他云厂商的网络集群方案一般来说也大同小异。所以通过本章的学习&…

【计算机网络】章节 知识点总结

一、计算机网络概述 1. 计算机网络向用户提供的两个最重要的功能:连通性、共享 2. 因特网发展的三个阶段: 第一阶段:从单个网络 ARPANET 向互联网发展的过程。1983 年 TCP/IP 协议成为 ARPANET 上的标准协议。第二阶段:建成三级…

一站式教育网校系统源码开发方案:知识付费小程序搭建详解

本文将从开发的技术要点、功能模块设计、性能优化等角度,详解一站式教育网校系统源码的开发方案,并着重讲解知识付费小程序的搭建方法。 一、教育网校系统源码开发的核心需求 要搭建一套稳定、高效的教育网校系统,首先需要明确其核心需求。一…