当我向小部件提供SafeArea
时,它将从槽口和主页按钮(iPhone X +中的水平线)获得一定的利润。如何更改不安全区域的背景? (保证金部分)?
答案 0 :(得分:7)
将您的SafeArea
包装到添加背景的小部件中:
Container(
color: Colors.red,
child: SafeArea(...),
),
答案 1 :(得分:2)
另一种方法。
import 'package:flutter/services.dart';
Scaffold(
body: AnnotatedRegion<SystemUiOverlayStyle>(
value: SystemUiOverlayStyle.light.copyWith(
statusBarColor: Theme.of(context).primaryColor
),
child: SafeArea(
child: Container(...),
),
),
)
答案 2 :(得分:0)
我结合以上两个答案来实现
我使用的代码是
var brightness = SchedulerBinding.instance.window.platformBrightness;
bool isDarkModeOn = brightness == Brightness.dark;
Widget build(BuildContext context) {
return Scaffold(
body: AnnotatedRegion<SystemUiOverlayStyle>(
value: isDarkModeOn
? SystemUiOverlayStyle.dark.copyWith(
statusBarColor: Theme.of(context).primaryColor,
)
: SystemUiOverlayStyle.light.copyWith(
statusBarColor: Theme.of(context).primaryColor,
),
child: Container(
decoration: getScreenGradient(),
child: SafeArea(
child: Container(
child: Center(
child: Stack(
children: [
getBackgroundImage(),
getBody(),
],
),
),
),
),
),
),
);
}