Flutter应用程序在加载应用程序之前显示黑屏

3yhwsihp  于 2023-05-19  发布在  Flutter
关注(0)|答案(7)|浏览(297)

我已经注意到这个问题与Flutter应用程序,当我打开一个Flutter应用程序从冷 Boot ,我看到一个黑屏弹出之前,实际的应用程序加载。我已经看到了NewsVoice制作应用程序的问题,以及我安装的一个测试应用程序。
点击这里查看视频:https://www.youtube.com/watch?v=zszud6UWzps
这是Flutter SDK中的一个bug吗?

sqserrrh

sqserrrh1#

这个问题是fixed recently。如果您使用的Flutter版本有此引擎修复,您将不会看到黑框。(现在修复应该在Flutter master分支上,但不是alpha分支。

ljo96ir5

ljo96ir52#

<meta-data
    android:name="io.flutter.embedding.android.SplashScreenDrawable"
    android:resource="@drawable/my_splash"
    />

AndroidManifest.xml检查FlutterActivity并添加以下代码

xdyibdwo

xdyibdwo3#

这不是问题,这是热重装。别担心当你带着放松跑的时候,你看不到这些。
如果你想确定,试试->
Flutter释放

wko9yo5t

wko9yo5t4#

不是窃听器。这是它正常的行为方式。您可以使用图像替换加载黑屏:
在AndroidManifest.xml中,您可以在此处更改启动图像。

<meta-data android:name="io.flutter.embedding.android.SplashScreenDrawable" 
android:resource="@drawable/launch_background" />

查找文件:
android\app\src\main\res\drawable\launch_background.xml
android\app\src\main\res\drawable-v21\launch_background.xml
更改文件以添加您自己的自定义图像:

<item>
    <bitmap android:gravity="center" android:src="@drawable/splash_image" />
</item>

您的启动图像应存储在可绘制文件夹中:
android\app\src\main\res\drawable\splash_image.png
app\src\main\res\drawable-v21\splash_image.png

ryoqjall

ryoqjall5#

我可以解决这个问题,在使用Firebase时删除FutureBuilder。只需在main()上初始化Firebase应用程序,就像这样

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

而不是在构建方法上使用FutureBuilder

inkz8wg9

inkz8wg96#

黑屏是因为各种各样的原因而出现的,这是我从网上看不同的React中收集到的。在我的例子中,我意识到一件事,我的Firebase.initializeApp()在我的FutureBuilder快照中返回了一个错误,因为没有任何小部件被渲染。我什么办法都试过了,但没有用。最后,我把我的项目移到了一个全新的文件夹中,如here所述
然后我的黑屏问题就解决了。

kkbh8khc

kkbh8khc7#

这不是一个错误,这是一个实际的启动画面。要替换黑/白色屏幕,您可以参考此docs

1.在终端上运行此命令

flutter pub add flutter_native_splash

这将向你的包的pubspec.yaml添加一行代码,并运行一个隐式的flutter pub get:

dependencies:
  flutter_native_splash: ^2.2.19

2.如何设置启动画面

在项目的pubspec.yaml文件中,在dev_dependencies添加..

flutter_native_splash:
  color: "#FFA500" 
  image: assets/logo.png  // you need to have an image in the assets folder
  android: true
  ios: true

3.运行包

在终端中运行以下命令

flutter pub run flutter_native_splash:create

这将解决问题。

相关问题