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

Flutter,Android -可以在启动屏幕上改变状态栏的颜色吗?

是的,Flutter和Android都可以在启动屏幕上改变状态栏的颜色。

在Flutter中,可以使用SystemChrome类来改变状态栏的颜色。首先,需要在pubspec.yaml文件中添加flutter/services依赖。然后,在需要改变状态栏颜色的页面中,可以使用以下代码:

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

// 设置状态栏颜色
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
  statusBarColor: Colors.blue, // 设置状态栏颜色
));

// 恢复状态栏颜色为默认值
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
  statusBarColor: null, // 恢复状态栏颜色为默认值
));

在Android中,可以通过在Activity的onCreate方法中调用Window类的setStatusBarColor方法来改变状态栏的颜色。以下是示例代码:

代码语言:txt
复制
import android.os.Build;
import android.view.Window;
import android.view.WindowManager;

// 设置状态栏颜色
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
  Window window = getWindow();
  window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
  window.setStatusBarColor(getResources().getColor(R.color.blue)); // 设置状态栏颜色
}

// 恢复状态栏颜色为默认值
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
  Window window = getWindow();
  window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
  window.setStatusBarColor(getResources().getColor(android.R.color.transparent)); // 恢复状态栏颜色为默认值
}

这样,无论是在Flutter还是在Android中,都可以通过相应的方法来改变启动屏幕上的状态栏颜色。

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

相关·内容

【Flutter 专题】41 图解神秘的 SystemChrome~

setPreferredOrientations 在我们日常应用中可能会需要设置横竖屏,或锁定单方向屏幕等不同要求,通过 setPreferredOrientations 配合实现;简单可以按...; 1. systemNavigationBarColor 该属性仅用于 Android 设备且 SDK >= O 时,底部状态栏颜色; SystemChrome.setSystemUIOverlayStyle...3. systemNavigationBarIconBrightness 该属性仅用于 Android 设备且 SDK >= O 时,底部状态栏图标样式,主要是三大按键颜色; SystemChrome.setSystemUIOverlayStyle...4. statusBarColor 该属性仅用于 Android 设备且 SDK >= M 时,顶部状态栏颜色; SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle...; }); ---- 整体来说 Flutter 对顶部底部状态栏的设置很方便,只是有些和尚理解不够深入的地方,有见解对朋友希望多多指导!

1.9K31
  • Flutter开发中的一些Tips

    当然了接口不可能用的了,所以都是些死数据,实现效果可以说是很完美了(得到了设计的认可。。。)。当然自己也是边查边写,也借鉴了许多Github上优秀的Flutter项目。...页面跳转如果使用MaterialPageRoute来做过渡效果,注意Android中新的页面会从屏幕底部滑动到屏幕顶部,IOS中新的页面会从屏幕右侧滑动到屏幕左侧。...状态栏方面,Android平台默认是半透明的效果,IOS则是透明效果。比如Android要实现IOS的效果,可以设置状态栏为透明。不过IOS要实现Android的效果则不行。。。,难道只能自定义?...当然了Android不存在这个问题。 比较成熟有效的方案是在键盘弹出的上方悬浮一个按钮,点击可以关闭键盘。...当然了,这种问题也有对应的库可以解决,我使用的是flutter_keyboard_actions来解决了这个问题。因为在Android端我发现了部分输入法的兼容问题,所以只针对IOS做了处理。

    2.2K30

    腾讯开源超实用的UI轮子库,我是轮子搬运工

    QMUI_Android 功能特性 全局 UI 配置 只需要修改一份配置表就可以调整 App 的全局样式,包括组件颜色、导航栏、对话框、列表等。一处修改,全局生效。...高效的工具方法 提供高效的工具方法,包括设备信息、屏幕信息、键盘管理、状态栏管理等,可以解决各种常见场景并大幅度提升开发效率。...在 item 右侧显示一个开关或箭头或自定义的View QMUIDialog 提供了一系列常用的对话框,解决了使用系统默认对话框时在不同 Android 版本上的表现不一致的问题。...获取屏幕信息,包括屏幕密度、屏幕宽度和高度、状态栏高度、ActionBar 高度等。...最后针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android

    4.8K30

    FlutterComponent最佳实践之沉浸式

    沉浸式状态栏,在Android开发中是一个比较麻烦的地方,因为不同的机型和版本兼容问题太多了,API变化也快,但是到了Flutter,一切问题都解决了,因为整个区域都是Skia绘制的,要什么都行,随便来...状态栏沉浸式 再来看看Android。 这个状态栏,为什么国内的设计师都想干掉它的颜色呢。...首先,我们来修改状态栏的颜色,Flutter提供了SystemChrome.setSystemUIOverlayStyle来修改状态栏和底部导航栏的样式修改,借助它,我们可以很方便的干掉状态栏的默认颜色...既然可以设置成透明,那么当然还可以设置成其它任何你想要的颜色,这里就不演示了。...其它 为了给Android开小灶,我们还得给它加上设备的判断。

    1.6K40

    浅谈 Android 自定义锁屏页的发车姿势

    Android系统实现自定义锁屏页的思路很简单,即在App启动时开启一个service,在Service中时刻监听系统SCREEN_OFF的广播,当屏幕熄灭时,Service监听到广播,开启一个锁屏页Activity...此外,我们可以通过getBackground()获取UnderView的背景,并根据已划开屏幕占整个屏幕的百分比调用setAlpha方法改变背景的透明度,做出抽屉拉开时的光影变化效果。 ?   ...”,就是我们所谈的沉浸模式,全称为 “Immersive Full-Screen Mode”,它可以使你的app隐藏状态栏和导航栏,实现真正意义上的全屏体验。   ...所以,透明栏只是能够改变状态栏和导航栏的颜色,并不像沉浸模式那样隐藏状态栏和导航栏,两者是有本质区别的。   对于Android 4.4以上5.0以下的版本,设置透明状态栏的方式如下: ?   ...综上所述,在Android上实现自定义锁屏页并不是一件复杂的事情,关键是对一些技术点的把握要比较清楚。

    3.9K91

    开启全面屏体验 | 手势导航 (一)

    △ Android 10 中新加入的手势交互 通过使用手势交互来执行系统导航,应用可以使用到更多的屏幕空间。这有助于您为用户打造更加沉浸的体验。 在大多数设备上,用户都能选择他们喜欢的导航模式。...使用 Android 10 以下设备的用户同样能获得更加沉浸的体验。我们将它设置为可选,仅仅是为了最大程度地减少开发者的工作量和测试量。 在状态栏后面绘制内容 接下来,我们来看看屏幕顶部的状态栏。...Android 10 在 Android 10 上,我们只需要将系统栏颜色设为完全透明即可: <!...具体来说,系统会执行以下两项操作之一: 动态颜色适配 系统栏里的内容会根据其后面的内容改变颜色。如果拖拽条位于浅色内容前方,它将变为深色,在深色内容前方时则变为浅色。 ?...△ Android 10 上的动态颜色适配 半透明遮盖 另外,系统也可以在系统栏后面放置一层半透明遮盖。

    2.5K30

    浅谈Android自定义锁屏页的发车姿势

    Android系统实现自定义锁屏页的思路很简单,即在App启动时开启一个service,在Service中时刻监听系统SCREEN_OFF的广播,当屏幕熄灭时,Service监听到广播,开启一个锁屏页Activity...此外,我们可以通过getBackground()获取UnderView的背景,并根据已划开屏幕占整个屏幕的百分比调用setAlpha方法改变背景的透明度,做出抽屉拉开时的光影变化效果。...”,就是我们所谈的沉浸模式,全称为 “Immersive Full-Screen Mode”,它可以使你的app隐藏状态栏和导航栏,实现真正意义上的全屏体验。...现在除了原有的“半透明”模式以外,还有“全透明”以及“变色”模式,一种会完全隐藏背景,另一种可以取色作为背景颜色,多种样式的透明栏如下图(上图为透明状态栏,下图为透明导航栏): ? ?...所以,透明栏只是能够改变状态栏和导航栏的颜色,并不像沉浸模式那样隐藏状态栏和导航栏,两者是有本质区别的。

    2.3K80

    Flutter完整开发实战详解(九、 深入绘制原理)

    作为系列文章的第九篇,本篇主要深入了解 Widget 中绘制相关的原理,探索 Flutter 里的 RenderObject 最后是如何走完屏幕上的最后一步,结尾再通过实际例子理解如何设计一个 Flutter...:所有的控件都与平台无关 ,这里简单的人话就是: Flutter 只要求系统提供的 “Canvas”,然后开发者通过 Widget 生成 RenderObject “直接” 通过引擎绘制到屏幕上。...目前简单来说,通过 PaintingContext 和 Offset ,在布局之后我们就可以在屏幕上准确的地方绘制会需要的画面。 ? 1、测试绘制 这里我们先做一个有趣的测试。...事实上,因为正常 Flutter 在绘制 Container 的时候,AppBar 已经帮我们计算了状态栏和标题栏高度偏差,但我们这里在用 Canvas 时直接粗暴的 drawRect,绘制出来的红色小方框...,目标是整个屏幕区域,整个屏幕就是一帧,每次改变都是重新绘制。

    1.2K10

    Android适配全面总结(三)----ROM适配

    ---- 第一篇文章讲了 Android适配全面总结(一)----屏幕适配 上一篇文章讲了 Android适配全面总结(二)----版本适配 这一篇文章讲一下 ROM适配。...在MIUI V6及以上版本,调用MIUI的方法将状态栏图标改为黑色。发现部分小米手机,这样的设置不管用,导致头上一片白,状态栏上的东西基本看不到。...(四)改变状态栏字体颜色为黑色的适配 2.4.1 小米适配 /** * 改变小米的状态栏字体颜色为黑色,要求MIUI6以上 * tested on: MIUI V7 5.0 Redmi-Note3...(五)屏幕圆角实现和适配 ? 示例图 实现原理:利用WindowManager将我们的圆角加到屏幕的四个角,圆角颜色设置为黑色,形成视觉圆角屏幕。...(八)在Nexus 手机,原生Android 8.0上,使用扫码的时候显示的拍照预览方向不正,有180度的旋转并且变形的,解决方案: private void surfaceIsChanged()

    2.1K10

    开启全面屏体验 | 手势导航 (一)

    △ Android 10 中新加入的手势交互 通过使用手势交互来执行系统导航,应用可以使用到更多的屏幕空间。这有助于您为用户打造更加沉浸的体验。 在大多数设备上,用户都能选择他们喜欢的导航模式。...使用 Android 10 以下设备的用户同样能获得更加沉浸的体验。我们将它设置为可选,仅仅是为了最大程度地减少开发者的工作量和测试量。 在状态栏后面绘制内容 接下来,我们来看看屏幕顶部的状态栏。...Android 10 在 Android 10 上,我们只需要将系统栏颜色设为完全透明即可: <!...具体来说,系统会执行以下两项操作之一: 动态颜色适配 系统栏里的内容会根据其后面的内容改变颜色。如果拖拽条位于浅色内容前方,它将变为深色,在深色内容前方时则变为浅色。...△ Android 10 上的动态颜色适配 半透明遮盖 另外,系统也可以在系统栏后面放置一层半透明遮盖。

    23110

    Flutter | 关于状态管理,别再被吓着了

    实践环节 1. widget自己管理自己 比如我们有如下一个示例,当我们点击屏幕时,相应的小方块改变颜色和内容, 因为要做到屏幕任意位置点击都可以触发,所以我们选用 GestureDetector 手势管理组件...在这个示例中,我们没有太多操作,就是单纯改变文字显示与颜色,所以对于如何显示的这个判断,我们很简单就会定义一个变量,然后在相应的状态下执行相应不同的处理方式即可。...最终 的显示,而在 Android 上,这个所谓的状态仅仅只是影响了view当前 的一个显示。...混合管理 有些情况下,我们可能会配合使用,比如下面示例中,手指按下时,我们屏幕中间小方块周围出现一个深红色边框,抬起时,边框消失,点击完成后,方块的颜色改变。...我们在父 Widget 管理红色边框是否显示,在子Widget控制小方块的颜色改变。 具体示例如下: image.png 参考资料 Flutter实战-状态管理 表情包出处

    89110

    Flutter常见开发问题

    这也让您可以非常轻松地制作自定义小部件,而在 Android 中制作自定义视图是一件相当困难的事情。 拖拽不是比在代码中制作布局更容易吗? 在某些方面,确实如此。...Android 和 iOS 文件夹的存在是为了在各自的平台上实际构建应用程序,并在其上运行 Dart 文件。它们还帮助您向项目添加权限和特定于平台的功能。...如果我是编程新手,想从移动端开发入手,应该从 Flutter 开始吗? 这有更多的两部分答案。 Flutter 非常适合编写代码,并且在相同页面上的代码比 Android 或 iOS 应用程序少得多。...**任何可以改变的东西,比如计数器计数、文本等,都可以成为 State 的一部分。想象一个计数器应用程序,主要的动态是计数器计数。当计数改变时,需要刷新屏幕以显示新值。...setState() 本质上是一种告诉应用程序使用新值刷新和重建屏幕的方法。 什么是有状态和无状态小部件? TL;DR:允许您刷新屏幕的小部件是有状态小部件。没有状态的小部件是无状态的。

    6.8K30

    Flutter常见开发问题

    拖拽不是比在代码中制作布局更容易吗? 在某些方面,确实如此。但是 Flutter 社区中的很多人更喜欢代码方式,但这并不意味着无法实现拖拽。...Android 和 iOS 文件夹的存在是为了在各自的平台上实际构建应用程序,并在其上运行 Dart 文件。它们还帮助您向项目添加权限和特定于平台的功能。...如果我是编程新手,想从移动端开发入手,应该从 Flutter 开始吗? 这有更多的两部分答案。 Flutter 非常适合编写代码,并且在相同页面上的代码比 Android 或 iOS 应用程序少得多。...**任何可以改变的东西,比如计数器计数、文本等,都可以成为 State 的一部分。想象一个计数器应用程序,主要的动态是计数器计数。当计数改变时,需要刷新屏幕以显示新值。...setState() 本质上是一种告诉应用程序使用新值刷新和重建屏幕的方法。 什么是有状态和无状态小部件? TL;DR:允许您刷新屏幕的小部件是有状态小部件。没有状态的小部件是无状态的。

    6.7K20

    Android 沉浸式解析和轮子使用

    在 Android 上,关于对 StatusBar(状态栏)的操作,一直都在不断改善,并且表现越来越好,在 Android4.4 以下,我们可以对 StatusBar 和 NavigationBar 进行显示和隐藏操作...为了让标题栏回到原来的位置并且适应标题栏的颜色,我们在标题栏的上方添加一个大小和 StatusBar 大小一样假的状态栏 View,View 的 BackgroundColor 可以自己设置成标题栏一样的颜色也可以是其他颜色...通过以上就可以实现 Android 4.4 上的沉浸式状态栏。...并且在 Android4.4-Android5.0 是没有提供改变状态颜色的属性,所以只能通过新增加一个假的状态栏方式改变背景颜色。...所以Android5.0以上可以设置状态栏和导航栏背景颜色,但还不能改变状态栏和导航栏图标和字色。

    3.2K10

    沉浸式管理:让你的APP更优雅

    android 5.0以上核心代码 Android自5.0起,为我们提供了设置状态栏和导航栏颜色的API,我们可以自己设置状态栏和导航栏的颜色。...有些app的状态栏并不是和标题栏颜色相同,稍微有些色差,所以在这里开发者只需要通过blendARGB()设置透明度就可以形成这种色差,而且还可以指定两种颜色之间的色差值,方便大家,android4.4上亦是如此...,设置导航栏颜色的时候,底部布局会被导航栏遮住,除此之外还有一个小问题就是当用户设置状态栏为透明色的时候,不能时刻改变bar的颜色值,are you kidding?...原理如此,发现SystemBarTint库的实现就是在状态栏和导航栏的位置自定义了可以改变背景颜色的view,然后通过window.getDecorView()得到根布局,把刚才创建的view添加进去,...状态栏字体颜色 沉浸式原理说完了,在看看状态栏字体颜色怎么去修改吧,在android 6.0以上系统为我们提供了相关的api来设置状态栏字体颜色,如下 if (Build.VERSION.SDK_INT

    1.8K30

    Android学习第八弹之改变状态栏的颜色使其与APP风格一体化

    导语:沉浸式状态栏,改变状态栏的颜色使之与APP风格一体化是不是感觉很漂亮,很美?其实实现这种效果并不难,google在4.4及以下提供了相关的方法。...我相信大家肯定看到过很多软件有沉浸式状态栏,在运行该App时改变了手机屏幕顶部状态栏的颜色,使他们的风格非常的统一,看起来异常的漂亮和清爽。...想不想实现这种效果呢,其实在Android KITKAT上有一个新的特性可以设置手机状态栏的背景,让手机整个界面的风格保持一致,看起来非常清爽统一。...当然这种效果只支持在API 19及以上使用沉浸式状态。4.4系统以上的是看不到这种效果的。 效果图 ?...比如系统有状态栏,应用也有状态栏时。看你这个布局代码,恰恰是在定义标题栏样式,所以用到这行代码了。

    61370

    关于 Android 中的各种 Bar 和“透明状态栏”的一些知识

    说明:在 Android 4.4 之前状态栏一直就是黑色的,在 Android 4.4 中带来了 windowTranslucentStatus 这一特性,这个时候才可以给状态栏设置颜色。...关于沉浸式和透明式概念说明 在谷歌官方中: 在 Android 4.4 Google 引入了可以在阅读电子书、玩游戏、看电影时支持全屏模式(Immersive Mode 沉浸模式),同时也支持更改修改状态栏的颜色...修改状态栏颜色 Android 5.0 (API 21) 后支持直接修改状态栏的颜色,在 Android 4.4(API 19)之前是不允许操作状态栏的,也就是说在 Android 4.4 之前,我们是没法对状态栏进行任何操作的...修改状态栏文字颜色 关于状态栏的文字颜色,是在 Android 6.0 才开始可以支持修改的 // 修改成 黑色字体 getWindow().getDecorView().setSystemUiVisibility...">true // 总结: 关于 addFlags 和改变 statusbar 颜色的方法在 getWindow 里面 页面布局 为了说明页面的布局关系,这里引入一张图片

    2.8K10
    领券