Flutter web - 启动画面 - 奇怪的行为

Posted

技术标签:

【中文标题】Flutter web - 启动画面 - 奇怪的行为【英文标题】:Flutter web - splash screen - weird behavior 【发布时间】:2021-09-25 22:13:50 【问题描述】:

由于第一次加载 Flutter Web 应用程序通常需要一些时间,我试图在其初始屏幕中显示一条消息,以通知用户该事物未冻结 e 该时间是常规的行为。

为此,我只是将这几行代码放在 web/index.html

  <div style="text-align: center; position: absolute; top: 40%; width: 100%">
    <center>
      <p style="font-weight: bolder;">Carregando o catálogo...</p>
      <p>Na primeira execução, isso pode demorar cerca de 20 a 30 segundos.<br/>Seja paciente! ;-)</p>
    </center>
  </div>

显示消息是事实,但是,它的颜色/大小在此过程中以一种神秘的方式发生变化,我就是不知道原因。看看这个:

我尝试添加一个微调器,但事情变得更糟了。看看:

现在,不仅文本发生变化,而且屏幕组件(包括微调器)看起来也受到了影响。

有人知道如何解决吗?

提前 10 倍寻求帮助。

【问题讨论】:

我不想删除我的加载程序指示器。我只是想避免它在一段时间后改变它的大小。看看我发布的图片。或者(而且总是有这种可能性)我不明白如何应用 javascript 代码来删除任何加载程序指示器。 您应该为样式添加 !important,例如:style="font-weight: bolder; color: #000 !important;" 【参考方案1】:

尝试将其添加到您的 index.html 文件中:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

我从另一个有同样问题的帖子中得到这个,它对我有用,在加载阶段结束时启动画面没有变大。 Flutter 编译器将通过以下消息抱怨它:

WARNING: found an existing <meta name="viewport"> tag. Flutter Web uses its own viewport configuration for better compatibility with Flutter. This tag will be replaced.

但保留它与元标记,你会看到它的工作原理。

【讨论】:

【参考方案2】:

随着 Flutter 框架的加载,javascript 正在改变 body 样式,这导致页面在启动屏幕的中途呈现不同的方式。你可以通过提前将 body 设置为 Flutter 的设置来解决这个问题,这样就不会发生任何变化。尝试将您的 &lt;body&gt; 标记替换为这个预先设置好的正文标记:

<body style="position: fixed; inset: 0px; overflow: hidden; padding: 0px; margin: 0px; user-select: none; touch-action: none; font: 14px sans-serif; color: red;">

【讨论】:

以上是关于Flutter web - 启动画面 - 奇怪的行为的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中获取原生启动画面?

在 Flutter 的启动画面期间加载数据

Flutter 应用程序(android)卡在启动画面

使用相机功能时,Flutter 应用程序崩溃并从启动画面重新启动

iOS 启动画面未显示在设备上 - 奇怪的问题

Flutter PlayStore Distribution APK 无法正常工作,无法加载,卡在启动画面