Как изменить цвет строки состояния в Flutter?
Я пытаюсь изменить цвет строки состояния на белый. Я нашел этот паб на флаттер. Я попытался использовать пример кода в моих файлах дартс.
Ответы
Ответ 1
Работает отлично в моем приложении
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);
return MaterialApp(
title: app_title,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: HomePage(title: home_title),
);
}
}
UPD: Другое решение
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: Colors.white
));
Ответ 2
Только Android:
import 'package:flutter/services.dart';
После этого вам нужно добавить следующие строки (лучшее место для размещения этих строк - в вашем методе main()
)
void main() {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
systemNavigationBarColor: Colors.blue, // navigation bar color
statusBarColor: Colors.pink, // status bar color
));
}
IOS и Android:
appBar: AppBar(
backgroundColor: Colors.red, // status bar color
brightness: Brightness.light, // status bar brightness
)
Ответ 3
Если вы используете AppBar
, то обновить цвет строки состояния так просто:
Scaffold(
resizeToAvoidBottomInset: false,
appBar: AppBar(
// Use Brightness.light for dark status bar
// or Brightness.dark for light status bar
brightness: Brightness.light
),
body: ...
)
Ответ 4
Я не могу комментировать прямо в теме, поскольку у меня пока нет необходимой репутации, но автор спросил следующее:
единственная проблема в том, что фон белый, но часы, беспроводная связь и другой текст и значки также белого цвета. Я не уверен, почему !!
Для всех, кто заходит в эту ветку, вот что у меня сработало. Цвет текста строки состояния определяется константой яркости в flutter/material.dart
. Чтобы изменить это, настройте решение SystemChrome
так, чтобы настроить текст:
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: Colors.red,
statusBarBrightness: Brightness.dark,
));
Возможные значения для Brightness
: Brightness.dark
и Brightness.light
.
Документация:https://api.flutter.dev/flutter/dart-ui/Brightness-class.html
https://api.flutter.dev/flutter/services/SystemUiOverlayStyle-class.html
Ответ 5
Вы также можете настроить, используя эту библиотеку eazy lib и short flutter_statusbarcolor 0.2.0
Ответ 6
в файле main.dart
Служба импорта как следовать
import 'package:flutter/services.dart';
и внутри метода сборки просто добавьте эту строку перед возвратом
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: Colors.orange
));
Вот так:
@override
Widget build(BuildContext context) {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: CustomColors.appbarcolor
));
return MaterialApp(
home: MySplash(),
theme: ThemeData(
brightness: Brightness.light,
primaryColor: CustomColors.appbarcolor,
),
);
}
Ответ 7
попробуй это:
return MaterialApp(
...
theme: ThemeData(
primarySwatch: Colors.deepPurple
),
...
);
Ответ 8
сделать его похожим на цвет панели приложения
import 'package:flutter/material.dart';
Widget build(BuildContext context) {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
systemNavigationBarColor: Colors.transparent,
));
}
Ответ 9
То, что вы хотите, это темы. Они важны для намного большего, чем цвет AppBar.
https://flutter.io/cookbook/design/themes/