在 flutter 中滚动 SliverAppBar 时状态栏变为透明
Status bar turns transparent while scrolling SliverAppBar in flutter
当内容在我的 flutter
应用程序中滚动时,我正在使用 SliverAppBar
滚动应用程序栏,但是一旦我滚动列表状态栏颜色就会变为透明。
我想要状态栏在它的位置和默认的原色,在我的例子中是蓝色。
参见:Video
Here is code:
Scaffold(
CustomScrollView(
slivers: <Widget>[
SliverAppBar(
title: Text("Home"),
floating: false,
pinned: false,
snap: false,
),
SliverList(
delegate: SliverChildListDelegate(SOME_LIST_DATA),
),
],
)
)
据我了解,状态栏的颜色会根据 AppBar 亮度自动更改,请参阅:https://api.flutter.dev/flutter/services/SystemChrome/setSystemUIOverlayStyle.html。
但是如果我怀疑你想要实现的是将状态栏保持为 AppBar 的默认颜色,你可以这样做(尽管我并不特别推荐):
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(statusBarColor: Theme.of(context).primaryColor));
当然,您可以将 Theme.of(context).primaryColor
更改为您想要的任何颜色。
用 SafeArea 包裹你的小部件,它对我有用...
当内容在我的
flutter
应用程序中滚动时,我正在使用SliverAppBar
滚动应用程序栏,但是一旦我滚动列表状态栏颜色就会变为透明。我想要状态栏在它的位置和默认的原色,在我的例子中是蓝色。
参见:Video
Here is code:
Scaffold(
CustomScrollView(
slivers: <Widget>[
SliverAppBar(
title: Text("Home"),
floating: false,
pinned: false,
snap: false,
),
SliverList(
delegate: SliverChildListDelegate(SOME_LIST_DATA),
),
],
)
)
据我了解,状态栏的颜色会根据 AppBar 亮度自动更改,请参阅:https://api.flutter.dev/flutter/services/SystemChrome/setSystemUIOverlayStyle.html。
但是如果我怀疑你想要实现的是将状态栏保持为 AppBar 的默认颜色,你可以这样做(尽管我并不特别推荐):
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(statusBarColor: Theme.of(context).primaryColor));
当然,您可以将 Theme.of(context).primaryColor
更改为您想要的任何颜色。
用 SafeArea 包裹你的小部件,它对我有用...