Android: la pantalla de presentación de Flutter no funciona con launch_background.xml

CorePress2024-01-24  9

Parece que no puedo mostrar mi propia pantalla de inicio, cada vez que inicio la aplicación se muestra la pantalla de inicio en blanco predeterminada, aunque configuré todo en launch_background.xml y los otros archivos en res. También configuré todos los íconos relevantes en drawable y mipmap.

lanzamiento_fondo.xml:

<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <color android:color="@color/splash" />
    </item>

    <!-- You can insert your own image assets here -->
    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/splash_icon" />
    </item>
</layer-list>

estilos.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
    <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
        <!-- Show a splash screen on the activity. Automatically removed when
             Flutter draws its first frame -->
        <item name="android:windowBackground">@drawable/launch_background</item>
    </style>
    <!-- Theme applied to the Android Window as soon as the process has started.
         This theme determines the color of the Android Window while your
         Flutter UI initializes, as well as behind your Flutter UI while its
         running.
         
         This Theme is only used starting with V2 of Flutter's Android embedding. -->
    <style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
        <item name="android:windowBackground">?android:colorBackground</item>
    </style>
</resources>

colores.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="ic_launcher_background">#191919</color>
    <color name="splash">#191919</color>
</resources>

<actividad> etiqueta en AndroidManifest.xml:

<activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <!-- Specifies an Android theme to apply to this Activity as soon as
                 the Android process has started. This theme is visible to the user
                 while the Flutter UI initializes. After that, this theme continues
                 to determine the Window background behind the Flutter UI. -->
            <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/LaunchTheme"
              />
            <!-- Displays an Android View that continues showing the launch screen
                 Drawable until Flutter paints its first frame, then this splash
                 screen fades out. A splash screen is useful to avoid any visual
                 gap between the end of Android's launch screen and the painting of
                 Flutter's first frame. -->
            <meta-data
              android:name="io.flutter.embedding.android.SplashScreenDrawable"
              android:resource="@drawable/launch_background"
              />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

La pantalla de presentación debería mostrar una imagen y un color de fondo diferente, pero en su lugar solo muestra la pantalla blanca en blanco predeterminada. No estoy usando una pantalla de presentación personalizada para esto. Sólo quiero que al menos los colores cambien, pero ni siquiera eso funciona.



------------------------------------

También realice los cambios en drawable-v21/launch_background.xml. Esto se utilizará para Android API Nivel 21 o superior.

3

5

¡¡aaaargh!! ¡Ese también fue el problema para mí! Gracias por el consejo. esto no se menciona en los documentos de flutter

- Delmontee

26 de julio de 2021 a las 8:40

1

Ruta a ese archivo desde la raíz de contenido: android/app/src/main/res/drawable-v21/launch_background.xml, o presione Ctrl+Shift+N y busque para launch_background.xml verás que hay dos instancias.

- Konstantin Kozirev

10/08/2021 a las 15:09

1

Esto actualmente no se menciona en los documentos

- Dror Bar

17 de agosto de 2021 a las 12:36



------------------------------------

Pub.dev tiene un paquete que creará las pantallas de presentación nativas por ti: flutter_native_splash

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare