gpt4 book ai didi

Flutter 状态栏动态改变颜色

转载 作者:IT王子 更新时间:2023-10-29 07:19:32 25 4
gpt4 key购买 nike

大多数关于此主题的答案都建议采用以下解决方案。

import 'package:flutter_statusbarcolor/flutter_statusbarcolor.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
FlutterStatusbarcolor.setStatusBarColor(Colors.white);

但是根据这个answer

The build method is designed in such a way that it should be pure/without side effects.

建议的解决方案有一个缺点 - 如果我必须根据当前屏幕更改状态颜色,它就不起作用。

有什么办法可以处理吗?

最佳答案

您可以使用AnnotatedRegion 为每条路线指定不同的statusBarColor:

class MyApp extends StatelessWidget {
Map<String, WidgetBuilder> get routes {
return {
'/': (context) {
return AnnotatedRegion<SystemUiOverlayStyle>(
value: const SystemUiOverlayStyle(statusBarColor: Colors.blue),
child: Scaffold(body: Home()),
);
},
'/foo': (context) {
return AnnotatedRegion<SystemUiOverlayStyle>(
value: const SystemUiOverlayStyle(statusBarColor: Colors.red),
child: Scaffold(body: Foo()),
);
},
};
}

@override
Widget build(BuildContext context) {
return MaterialApp(
routes: routes,
);
}
}

关于Flutter 状态栏动态改变颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56299842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com