1. 程式人生 > 其它 >直播app原始碼,背景主題以及狀態列的更改和設定

直播app原始碼,背景主題以及狀態列的更改和設定

直播app原始碼,背景主題以及狀態列的更改和設定實現的相關程式碼

一、依賴

只需要原生io和services即可。

功能主要為可以自定義AppBar及整體頁面佈局。

1. 狀態列管理

主要使用如下


import 'dart:io';
import 'package:flutter/services.dart';
SystemUiOverlayStyle value;
if(Platform.isAndroid){
value = SystemUiOverlayStyle(
statusBarColor: Colors.transparent, /// 安卓系統狀態列存在底色,所以需要加這個
statusBarIconBrightness: Brightness.dark, /// 狀態列字型顏色
);
} /// 僅IOS可直接使用:SystemUiOverlayStyle.dark, 狀態列主題色,表現為dart:黑色,light:白色
AnnotatedRegion<SystemUiOverlayStyle>(
value: value
child: Scaffold(
body: Widget
)
)

​二、使用

import 'dart:io';
import 'package:flutter/services.dart';
customerTheme(bool inset, SystemUiOverlayStyle value, Widget body, {BoxDecoration? boxDecoration, Function()? onTap, bool willPop = false}){
if(Platform.isAndroid){
value = SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
statusBarIconBrightness: Brightness.dark,
);
}
return AnnotatedRegion<SystemUiOverlayStyle>(
value: value,
child: Scaffold(
resizeToAvoidBottomInset: inset, /// true時body和scaffold的浮動視窗小部件應自行調整大小,避免鍵盤彈出時溢位
body: willPop ? WillPopScope( /// 阻止左滑動或安卓返回鍵退出
onWillPop: () async {
return true;
},
child: GestureDetector(
onTap: onTap,
child: Container(
height: double.infinity,
width: double.infinity,
decoration: boxDecoration,
child: body,
margin: EdgeInsets.only(top: 10.dp),
),
),
) : GestureDetector(
onTap: onTap,
child: Container(
height: double.infinity,
width: double.infinity,
decoration: boxDecoration,
child: Column(
children: [
Get.getHeightBox(10.dp),
Expanded(child: body)
],
),
),
)
)
);
}

以上就是直播app原始碼,背景主題以及狀態列的更改和設定實現的相關程式碼, 更多內容歡迎關注之後的文章