【发布时间】:2020-08-17 03:46:08
【问题描述】:
我有两个应用程序“屏幕”,A 和 B。两者都在构建方法中设置了SystemChrome.setEnabledSystemUIOverlays。
A按
设置 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。
提前致谢!
【问题讨论】: