我正在尝试将状态栏颜色更改为白色...我发现这个酒吧在flutter https://pub.dartlang.org/packages/flutter_statusbarcolor ...我试图在我的dart文件(主要和其他)上使用示例代码...但是它不起作用......任何想法的家伙?
我正在尝试将系统状态栏的颜色更改为黑色.配置似乎被AppBar类覆盖.我可以通过分配主题来实现我想要的:ThemeData.dark()在创建Material App时,然后指定一个appBar attribute.但我不想要一个AppBar,并且这样做也会改变所有的字体颜色.
一种可能的解决方案是将ThemeData.bright()继承到新类中,然后添加仅更改系统状态栏的内容
setSystemUIOverlayStyle
Run Code Online (Sandbox Code Playgroud)
然后我需要指定AppBar并让它以某种方式隐形?
https://docs.flutter.io/flutter/services/SystemChrome/setSystemUIOverlayStyle.html
main.dart
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:english_words/english_words.dart';
import 'layout_widgets.dart' as layout_widgets;
class RandomWords extends StatefulWidget {
@override
createState() => new RandomWordsState();
}
class RandomWordsState extends State<RandomWords> {
final _suggestions = <WordPair>[];
final _saved = new Set<WordPair>();
final _biggerFont = const TextStyle(fontSize: 18.0);
void _pushSaved() {
Navigator.of(context).push(
new MaterialPageRoute(
builder: (context) {
final tiles = _saved.map((pair) {
return new ListTile(
title: new Text(pair.asPascalCase,style:_biggerFont)
);
}
);
final divided = ListTile.divideTiles( …Run Code Online (Sandbox Code Playgroud) 通过运行此代码,我在 Android 和 iO 上得到了 2 个不同的结果。对于 Android 来说,一切都按预期工作,但对于 iO 来说,它会被忽略。我没有收到任何错误或类似的错误。
class MyMaterialApp extends StatefulWidget {
const MyMaterialApp({Key key}) : super(key: key);
@override
_MyMaterialAppState createState() => _MyMaterialAppState();
}
class _MyMaterialAppState extends State<MyMaterialApp> {
@override
Widget build(BuildContext context) {
SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
statusBarColor: Colors.blue,
statusBarIconBrightness: Brightness.dark,
systemNavigationBarColor: Colors.blue,
systemNavigationBarIconBrightness: Brightness.dark,
));
return MaterialApp()
}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会发生这种情况?谢谢!
在 main 方法中使用以下代码行更改颤动中的底部导航栏颜色时:
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
systemNavigationBarColor: Colors.white,
statusBarColor: Colors.transparent,
));
Run Code Online (Sandbox Code Playgroud)
它工作正常,但在主页内使用 SilverAppBar一段时间后,底部导航栏颜色恢复为黑色:
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
expandedHeight: 300,
floating: false,
pinned: true,
snap: false,
backgroundColor: Colors.white,
flexibleSpace: FlexibleSpaceBar(),
),
SliverList(
delegate: SliverChildListDelegate(<Widget>[
]),
)
],
),
Run Code Online (Sandbox Code Playgroud)
更改 expandedHeight: 250底部导航栏颜色的值时不会改变,所以问题出在expandedHeightvalue内部,那么为什么以及如何解决这个问题。