颤动:使用新屏幕而不是上一屏幕将屏幕旋转到横向

问题描述

我想从肖像菜单移至风景细节页面。我为此使用以下代码,它可以与其他转换(从介绍页面到详细信息页面)一起正常使用。

SystemChrome.setPreferredOrientations([
      DeviceOrientation.landscapeRight,]);

现在,在这种情况下,我收到错误消息

The following assertion was thrown during layout:
A RenderFlex overflowed by 165 pixels on the bottom.

这是因为菜单页面对于横向而言太长且没有滚动条。我可以解决,但是有没有一种简单,干净的方法来清除页面,翻转页面然后呈现新内容?同样,在我的工作过渡中,当肖像内容旋转为横向时,或者如果-更糟糕的是-新屏幕在返回横向之前又跳回了纵向毫秒,都显得很糟糕。

我已将上面的代码放在initState以及Widget build()的后面(两次尝试,不能同时尝试)

解决方法

我不确定,如果您使用与主页相同的页面,则无论您如何称呼它,对于横向模式来说都是“太大”。

解决方案#0-确保setState能够做到这一点。它将自动再次呈现页面。

解决方案1-只需向菜单页面添加滚动功能(使用SingleChildScrollView或ListView)

解决方案2-过于复杂,但是如果您的情况要求...请调用下一页,传递用于设置正确方向的参数,在渲染之前先初始化。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...