我有一个像这样的SliverAppBar设置:
class PostScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: NestedScrollView(
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
SliverAppBar(
floating: true,
pinned: false,
snap: true,
title: Text('News'),
forceElevated: true,
actions: [
IconButton(
icon: Icon(Icons.share),
tooltip: 'Share',
onPressed: () {
// TODO
},
),
],
),
];
},
body: ListView(
padding: EdgeInsets.all(0),
children: <Widget>[
// ...
],
),
),
);
}
}
每当我滚动页面时,应用栏都会按预期显示/重新出现,但是当隐藏应用栏时,设备状态栏会显示在我的内容顶部(至少在iOS上,尚未通过Android进行过测试) )。我知道我可以使用以下代码段将其隐藏:
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.bottom]),
但是我无法弄清楚仅在隐藏应用程序栏时如何触发它,而且一旦应用程序栏重新出现也重新启用状态栏。有什么建议吗?
答案 0 :(得分:0)
我有一个建议,尽管不一定是一个好建议。但是您可以使用ScrollController,找到手动隐藏应用程序栏的位置(我假设kToolbarHeight周围的某处,在所有设备上应该都相同),然后使用它触发启用或禁用系统覆盖。 >