启用S​​ystemUiOverlays时出现问题

时间:2019-01-27 11:12:22

标签: user-interface flutter

大多数时候,当我启用SystemOverlay.top或SystemOverlay.bottom之一时,会显示状态栏,但问题出在SystemNavigationBar(底部的三个按钮)上。它没有显示,但是当我从底部向上滑动时,它出现了,并且再也没有消失。并且BottomNavigation栏的颜色也从黑色(系统默认设置)和我设置的自定义设置(使用SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark.copyWith(systemNavigationBarColor: Colors.red ));)开始摆动。

并且按钮本身的颜色也从0.5不透明和完全1.0不透明切换。

当用手势检测器包装任何窗口小部件时,问题也变得更加严重(不完全知道为什么,但是当我这样做时,该窗口小部件的onTap函数被随机触发)并使用TextField(这一点更容易理解)因为单击它会触发SystemNavigationBar外观)。而且,当使用ListView或PageView时,如果不脱离其高度,则不要使用NavigationBar的高度。

要重现这种奇怪的行为,您可以将以下代码放入有状态的小部件的构建函数中:

@override
Widget build(BuildContext context) {

SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark.copyWith(systemNavigationBarColor: Colors.red
));
return Container(
  color: Colors.red,
  child: Center(
    child: Text("TEST"),
  ),
);
}

我该如何解决?

0 个答案:

没有答案