第二百六十六回

2024-01-15 01:12
文章标签 六十六 第二百

本文主要是介绍第二百六十六回,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1. 概念介绍
  • 2. 分析与解决
    • 2.1 分析问题
    • 2.2 解决方案
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"如何修改CircleAvatar的大小"相关的内容,本章回中将介绍如何修改StatusBar中文字的颜色.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

在实际项目中发现一个问题:程序顶部StatusBar中的的文字颜色从默认的黑色变成了白色,而且是时好时坏。我们在程序中没有直接修改过这些内容,估计是修改其它
内容引入的问题。本章回中将带着大家一起去分析并且解决这个问题。

2. 分析与解决

2.1 分析问题

我们没有修改过状态栏(即StatusBar)中的文字的颜色,但是我们修改过状态栏的颜色,这个在"第一百五十六回:如何实现沉浸式状态栏"章回中介绍过,我们通过把状
态的颜色设置成透明色来实现沉浸式效果。但是这个修改不会影响到状态栏中文字的颜色。于是我们继续查找问题的原因,后来发现我们创建沉浸状态栏时分没有AppBar
和有AppBar两种情况。从没AppBar的页面跳转到有AppBar的页面时一切正常,但是从有AppBar的页面跳转到没有AppBar的页面时问题就出现了。终于找到了可以百
分之百复现问题的方法。于是我们把问题定位到了AppBar上。修改AppBar的页面使用图片背景,详细的操作可以参考"第一百六十六回:如何创建以图片为背景的页面"
中的内容。为了让图片背景覆盖到状态栏,我们参考了创建沉浸式菜单的方法,修改了AppBar背景颜色:把AppBar的颜色设置为透明色。此时,通过导航返回到上一个
没有AppBar的页面时,该页面状态栏的文字变成了白色。看来就是修改AppBar的背景色影响了状态栏中文字的颜色。去掉该修改后状态栏中的文字颜色恢复正常。

2.2 解决方案

我们在分析问题时已经找到了解决问题的方法:在创建以图片为背景的页面时,不设置AppBar的颜色。只修改两个内容,详细如下:

  • 在main文件中修改状态栏的背景颜色,将其设置为透明色;
  • 在AppBar中不修改AppBar的背景颜色;
    注意:我在这里说的不修改AppBar的背景颜色是指不通过background属性修改AppBar的背景颜色,而是把forceMaterialTransparency的属性值设置为true。

3. 示例代码

Scaffold(appBar: AppBar(title: const Text("Example of Background Image"),///不通过这种方式修改AppBar的背景颜色,而是使用下面的方式修改背景颜色//background:Colors.white,///让appBar变成透明色,不然会覆盖扩展的body内容forceMaterialTransparency: true,),///让body中的内容扩展到AppBar和statusBae,需要在runAppBar前设置状态栏为透明色extendBodyBehindAppBar: true,body: Stack(children: [const Image(width: double.infinity,height: double.infinity,fit: BoxFit.fill,image: AssetImage("images/ex.png"),),Padding(//需要添加边距:status+appBar的高度,不然会上升屏幕最上方padding: const EdgeInsets.only(top: 56*2),child: SizedBox(width: double.infinity,height: double.infinity,///调试时使用,方便观察容器的大小// color: Colors.green,child: Column(mainAxisAlignment: MainAxisAlignment.spaceAround,crossAxisAlignment: CrossAxisAlignment.center,children: [const Text(style: TextStyle(color: Colors.redAccent,fontSize: 32,),"body of page"),ElevatedButton(onPressed: () {}, child: const Text("button"))],),),)],),
);

上面的示例代码演示了如何创建以图片为背景的页面,不过要注意修改AppBar背景颜色的方法。我们在代码中添加了注释,希望大家引起注意。

4. 内容总结

本章回中介绍的问题是实现沉浸式效果、实现以图片为背景的页面和页面导航三个知识点一起作用引起的问题,查找问题的原因比较复杂。我们先是找到复现问题的方法,
然后在此基础上找到了解决问题的文案。不过其背后的原因还不清楚:AppBar的背景颜色如何与状态栏中的文字颜色关联在了一起?欢迎大家在评论区交流与讨论。
最后,我们对本章回的内容做一个全面的总结:

  • 实现沉浸式状态栏效果时分有无AppBar两种情况;
  • 实现以图片为背景的页面时注意AppBar背景颜色的修改方式;
  • 实现以图片为背景的页面时需要在沉浸式状态栏的基础上实现;
    看官们,与"如何修改StatusBar中文字的颜色"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

这篇关于第二百六十六回的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/607149

相关文章

Flink实例(六十六): Flink的任务链实操(二)

Operator Chains(操作链) Flink出于分布式执行的目的,将operator的subtask链接在一起形成task(类似spark中的管道)。 每个task在一个线程中执行。 将operators链接成task是非常有效的优化:它可以减少线程与线程间的切换和数据缓冲的开销,并在降低延迟的同时提高整体吞吐量。 链接的行为可以在编程API中进行指定,详情请见代码Opera

思考(六十六):无状态服务的数据存取与事务处理

痛点一 每次存取数据量太大,影响性能 比如,背包数据,每次请求操作都存取背包数据,会影响机房内流量与数据库性能 痛点二 一次请求,通常会涉及多次数据存取,程序 panic 会导致只提交部分数据到数据库 这涉及到无状态服务如何让便利的逻辑编写同时兼具事务 内置 LRUCache 解决大数量量存取 无状态服务,主要是解绑数据与服务进程间的一一对应关系 即请求到达任何一个服务进程,都能正

第二百零九节 Java格式 - Java数字格式类

Java格式 - Java数字格式类 以下两个类可用于格式化和解析数字: java.text.NumberFormatjava.text.DecimalFormat NumberFormat 类可以格式化一个数字特定地区的预定义格式。 DecimalFormat 类可以格式化数字以特定区域设置的自定义格式。 NumberFormat类的 getXXXInstance()方法返回格式化

第二百零四节 Java正则表达式教程 - Java正则表达式量词

Java正则表达式教程 - Java正则表达式量词 我们可以指定正则表达式中的字符的次数可以匹配字符序列。 为了使用正则表达式表达一个数字或更多的模式,我们可以使用量词。 下表列出了量词及其含义。 量词含义*零次或更多次+一次或多次?一次或根本不{m}正好m次{m,}至少m次{m,n}至少m,但不超过n次 量词必须遵循字符或字符类。 例子 import java.util.reg

父类指针指向子类对象,子类指针不能指向父类对象(六十六)

1.代码示例  class Parent{public:int a};class Child :public Parent{ public:int b;}Parent类占内存大小范围:int a; 占4个字节.Child类占内存大小范围:int a; 加上 int b;一共占8个字节.基类指针(Parent)指向派生类(Child):Parent *p = new Child()

Android14音频进阶之<进阶调试>:Perfetto定位系统音频问题(六十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门实战课【原创干货持续更新中……】🚀 人生格言:

《手把手教你》系列技巧篇(六十六)-java+ selenium自动化测试 - 读写excel文件 - 上篇(详细教程)

1.简介 在自动化测试,有些我们的测试数据是放到excel文件中,尤其是在做数据驱动测试的时候,所以需要懂得如何操作获取excel内的内容。由于java不像python那样有直接操作Excle文件的类库,所以我们必须借助第三方工具:POI(基于Apache的POI类库)。 2.常见读写Excel的工具类开源javaAPI 目前常见读写Excel的工具类开源javaAPI有两种方式: 一个是

一起Talk Android吧(第二百三十七回:Android中的Intent)

各位看官们大家好,上一回中咱们说的是Android中四大组件的例子,这一回咱们说的例子是Intent。闲话休提,言归正转。让我们一起Talk Android吧! 看官们,我们在本章回中将介绍Intent,它也是常用的知识,四大组件中有三大组件都使用它,比如打开Activity,绑定服务,发送广播。我们在代码中都看到过Intent的身影。 Intent可以显式和隐式两种; 显式Intent中包含

一起Talk Android吧(第二百三十六回:Android中的四大组件概述)

各位看官们大家好,上一回中咱们说的是Android中数据存储大结局的例子,这一回咱们说的例子是四大组件。闲话休提,言归正转。让我们一起Talk Android吧! 看官们,我们在这一回中介绍一下Android中的四大组件,它们是 ActivityServiceBroadcastContentProvider。 其实这些内容我们都介绍过,接下来我们一起回顾一下这些知识. Activity是程

一起Talk Android吧(第二百三十四回:Android中的数据存储之ContentProvider二)

各位看官们大家好,上一回中咱们说的是Android中数据存储之ContentProvider的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起Talk Android吧! 看官们,我们在上一回中介绍了如何通过ContentProvider读取联系人模块中的数据,下面是完整的代码,请大家参考: package com.example.talk8.blogappall;import a