如何在 Flutter 中移除原生闪屏和主屏幕之间的默认淡入淡出过渡? (仅使用本机启动画面)

Posted

技术标签:

【中文标题】如何在 Flutter 中移除原生闪屏和主屏幕之间的默认淡入淡出过渡? (仅使用本机启动画面)【英文标题】:How to remove the default fade transition between the native splash screen and the home screen in flutter? (Using native splash screen only) 【发布时间】:2021-01-21 22:03:00 【问题描述】:

我有一个原生的闪屏,但是当闪屏结束时,我的应用主屏幕上有一个淡入淡出的动画。我需要删除它,并且仍然使用本机飞溅。我该怎么做?

【问题讨论】:

【参考方案1】:

这是我发现的:

在 Flutter 项目中打开您的 android 项目 在您的 Android 项目中,转到 app/src/main/AndroidManifest.xml 在那个AndroidManifest.xml 文件中,你应该找到一个activity 块 在该块中,注释或删除两个 meta-data 块,尤其是这一块:
    <meta-data
        android:name="io.flutter.embedding.android.SplashScreenDrawable"
        android:resource="@drawable/launch-background" />

不仅初始屏幕仍然有效,因为您将android:theme=@style/LaunchTheme 作为MainActivity 的属性,而且还将消除您在初始屏幕上可能存在的故障,该故障会稍微改变您的徽标(如果当然,您的初始屏幕中有一个)。

如果您有一个基本的初始屏幕,那么该解决方案有效(至少对我而言)。例如,我还没有使用更高级的自定义动画启动屏幕进行测试,因此它可能不是适合所有人的完美解决方案。

【讨论】:

注释掉 块会导致 android.content.res.Resources$NotFoundException: Resource ID #0x0 和我的应用程序崩溃。发布和调试。 @Dmytro 这很奇怪,因为该块不是资源。我仔细检查了我的项目,meta-data 已被评论,我没有任何问题。也许您的问题来自其他地方? 我的应用程序的 Android 版本位于稳定的最新频道 - 1.22.6@Linux。现在我使用 github.com/flutter/flutter/issues/63156 的配方 我想我找到了 - 我有额外的自定义启动屏幕加载程序,它试图重用清单中的数据。打扰了,我深表歉意。 @Dmytro 不用担心!很高兴你找到它;)

以上是关于如何在 Flutter 中移除原生闪屏和主屏幕之间的默认淡入淡出过渡? (仅使用本机启动画面)的主要内容,如果未能解决你的问题,请参考以下文章

Sencha触摸闪屏问题

Flutter Dismissible 未从树中移除

Flutter:快速创建简单闪屏页

如何在 Flutter 中为闪屏创建渐变色背景?

闪屏中的闪屏

如何在Swift中正确地从父节点中删除SKSpriteNode的子类(要从数组中移除,屏幕上的空格......)?