[英]Changing the systemNavigationBarColor isn't working Flutter
我想根據主題更改 systemNavigationBar 的顏色。
我一直在嘗試使用SystemOverlayStyle
更改應用程序的系統導航顏色的顏色,但它似乎不起作用。
ThemeData get light => ThemeData(
appBarTheme: AppBarTheme(
iconTheme: lightBase.iconTheme,
backgroundColor: Colors.transparent,
elevation: 0,
centerTitle: true,
titleTextStyle: const TextStyle(
fontWeight: FontWeight.bold,
fontSize: 17,
color: AppColors.textDark,
),
systemOverlayStyle:
SystemUiOverlayStyle(systemNavigationBarColor: Colors.pink),
),
);
用AnnotatedRegion
小部件包裹Scaffold
。 然后將它的 value 屬性設置為SystemUIOverlayStyle
例如
@override
Widget build(BuildContext context) {
return AnnotatedRegion<SystemUiOverlayStyle>(
value: const SystemUiOverlayStyle(
statusBarBrightness: Brightness.light,
statusBarIconBrightness: Brightness.dark,
statusBarColor: Colors.transparent,
systemNavigationBarColor: Colors.white, // Change Background color
systemNavigationBarIconBrightness: Brightness.dark, // Change Icon color
),
child: Scaffold(
要動態更改,例如使用系統主題,首先獲取系統的Brightness
。
var brightness = MediaQuery.of(context).platformBrightness;
bool isDarkMode = brightness == Brightness.dark;
現在基於isDarkMode
值
systemNavigationBarColor:isDarkMode ? Colors.white : Colors.black,
使用 manifest.xml 文件(在 android 項目中)
https://developer.android.com/reference/android/view/Window#setNavigationBarColor(int)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.