局部改變暫且沒有一起寫
改狀態(tài)欄顏色
頭部引入
import 'package:flutter/services.dart';
main頁面放在Widget build函數(shù)里
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(statusBarColor: Colors.XXX));
使?fàn)顟B(tài)欄透明化
這里我查到有資料說是直接改顏色為transparent就可以,但我沒有起作用
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(statusBarColor: Colors.transparent));
后來看到另一位回答里寫的方法起作用。
首先需要在flutter項目目錄下找到android主入口頁面MainActivity.kt或MainActivity.java,判斷一下版本號然后將狀態(tài)欄顏色修改設(shè)置成透明,因為他本身是黑色半透明。

image.png
在MainActivity.kt頁面新增如下代碼
//設(shè)置狀態(tài)欄沉浸式透明(修改flutter狀態(tài)欄黑色半透明為全透明)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.statusBarColor = 0
}
}
完整MainActivity.kt代碼如下:
package com.example.flutter_app///這里是你的項目注意別覆蓋
import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant
//引入
import android.os.Build;
import android.os.Bundle;
class MainActivity: FlutterActivity() {
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine);
}
//設(shè)置狀態(tài)欄沉浸式透明(修改flutter狀態(tài)欄黑色半透明為全透明)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.statusBarColor = 0
}
}
}
引自Flutter沉浸式透明狀態(tài)欄|flutter自定義凸起B(yǎng)ottomAppBar導(dǎo)航 - SegmentFault 思否
設(shè)置狀態(tài)欄字體顏色
注意這里只能改變狀態(tài)欄字體顏色為白色或者黑色
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark/light);