我有两个应用程序“屏幕”,A和B。两者都SystemChrome.setEnabledSystemUIOverlays在构建方法中设置。
一套按照
Widget build(BuildContext context) {
SystemChrome.setEnabledSystemUIOverlays(SystemUiOverlay.values);
return WillPopScope(
....
而B设置为
Widget build(BuildContext context) {
if (MediaQuery.of(context).orientation == Orientation.landscape) {
SystemChrome.setEnabledSystemUIOverlays([]);
}
else {
SystemChrome.setEnabledSystemUIOverlays(SystemUiOverlay.values);
}
return WillPopScope(
.....
纵向从A导航到B效果很好。但是,如果我在B中输入景观,颤动会删除覆盖,然后立即重新实现它们,即我看到覆盖消失并很快重新出现。如果我从A完全删除覆盖线,B工作正常。它就像B被重建,然后是A但在后台。那是一回事吗?
我像这样导航
Navigator.push(context, MaterialPageRoute(builder: (mContext) => DataForm(file: _file)))
三天来,我一直在跟踪这个错误。作为参考,在我的所有代码中仅在此处设置了叠加层。该问题仅发生在 Android 上。
我很欣赏第一反应是'它在你的代码中,我们需要看到它来解决它'。我尝试在“最小代码”中重现该问题以发布示例,但我无法让错误再次发生,而且我的代码非常广泛,我不知道如何全部展示。
根据标题,我改为询问哪些场景可能导致屏幕A覆盖设置在每次构建时影响屏幕B。
提前致谢!