大多数时候,当我启用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"),
),
);
}
我该如何解决?