¿Cómo abordaría agregar una pantalla de bienvenida a las aplicaciones Flutter? Debe cargarse y mostrarse antes que cualquier otro contenido. Actualmente hay un breve destello de color antes de que se cargue el widget Scaffold (inicio: X).
143
Respuestas:
Quiero aportar más luz sobre la forma real de hacer una pantalla de bienvenida en Flutter.
Seguí un poco el rastro aquí y vi que las cosas no se ven tan mal en la pantalla de bienvenida en Flutter.
Tal vez la mayoría de los desarrolladores (como yo) están pensando que no hay pantalla de bienvenida por defecto en Flutter y necesitan hacer algo al respecto. Hay una pantalla de bienvenida, pero tiene un fondo blanco y nadie puede entender que ya hay una pantalla de bienvenida para iOS y Android de forma predeterminada.
Lo único que debe hacer el desarrollador es colocar la imagen de marca en el lugar correcto y la pantalla de inicio comenzará a funcionar así.
Así es como puedes hacerlo paso a paso:
Primero en Android (porque es mi plataforma favorita :))
Encuentra la carpeta "android" en tu proyecto Flutter.
Vaya a la aplicación -> src -> main -> res folder y coloque todas las variantes de su imagen de marca en las carpetas correspondientes. Por ejemplo:
Por defecto, en la carpeta de Android no hay drawable-mdpi, drawable-hdpi, etc., pero podemos crearlos si lo deseamos. Debido a ese hecho, las imágenes deben colocarse en las carpetas mipmap. Además, el código XML predeterminado sobre la pantalla de bienvenida (en Android) usará @mipmap, en lugar de @drawable resource (puede cambiarlo si lo desea).
El último paso en Android es descomentar parte del código XML en el archivo drawable / launch_background.xml. Vaya a la aplicación -> src -> main -> res-> drawable y abra launch_background.xml. Dentro de este archivo, verá por qué el fondo de la pantalla Slash es blanco. Para aplicar la imagen de marca que colocamos en el paso 2, tenemos que descomentar parte del código XML en su archivo launch_background.xml. Después del cambio, el código debería verse así:
Tenga en cuenta que comentamos el código XML para el fondo blanco y descomente el código sobre la imagen mipmap. Si alguien está interesado, el archivo launch_background.xml se usa en el archivo styles.xml.
Segundo en iOS:
Encuentra la carpeta "ios" en tu proyecto Flutter.
Vaya a Runner -> Assets.xcassets -> LaunchImage.imageset. Debería haber LaunchImage.png, [email protected], etc. Ahora debe reemplazar estas imágenes con sus variantes de imagen de marca. Por ejemplo:
Si no me equivoco, [email protected] no existe por defecto, pero puede crear uno fácilmente. Si [email protected] no existe, debe declararlo también en el archivo Contents.json, que se encuentra en el mismo directorio que las imágenes. Después del cambio, mi archivo Contents.json se ve así:
Eso debería ser todo lo que necesita, la próxima vez que ejecute su aplicación, en Android o iOS, debe tener la pantalla de bienvenida correcta con la imagen de marca que agregó.
Gracias
fuente
Cannot resolve symbol '@mipmap/ic_launcher'
en Android Studio 3.1.1 (incluso después de la reconstrucción de la memoria caché), sin embargo, la aplicación se compiló y ejecutó sin error, y se mostró un gráfico de inicio.Si realizó
flutter create
su proyecto, puede seguir los pasos en https://flutter.io/assets-and-images/#updating-the-launch-screen .fuente
Flutter en realidad ofrece una forma más sencilla de agregar Splash Screen a nuestra aplicación. Primero necesitamos diseñar una página básica a medida que diseñamos otras pantallas de aplicaciones. Debe convertirlo en un widget StatefulWidget ya que el estado de esto cambiará en unos segundos.
Lógica Dentro del initState () , llame a un Timer () con la duración, como lo desee, lo hice 3 segundos, una vez hecho esto empuje el navegador a la pantalla de inicio de nuestra aplicación.
Nota: La aplicación debe mostrar la pantalla de inicio solo una vez, el usuario no debe volver a ella nuevamente al presionar el botón Atrás. Para esto, utilizamos Navigator.pushReplacement () , se moverá a una nueva pantalla y eliminará la pantalla anterior de la pila del historial de navegación.
Para una mejor comprensión, visite Flutter: diseñe su propia pantalla de bienvenida
fuente
Todavía no hay un buen ejemplo de esto, pero puede hacerlo usted mismo utilizando las herramientas nativas para cada plataforma:
iOS: https://docs.nativescript.org/publishing/creating-launch-screens-ios
Android: https://www.bignerdranch.com/blog/splash-screens-the-right-way/
Suscríbase al número 8147 para obtener actualizaciones sobre el código de ejemplo para pantallas de presentación. Si el parpadeo negro entre la pantalla de inicio y la aplicación en iOS te molesta, suscríbete al número 8127 para recibir actualizaciones.
Editar: a partir del 31 de agosto de 2017, el soporte mejorado para pantallas de bienvenida ahora está disponible en la nueva plantilla de proyecto. Ver # 11505 .
fuente
Para Android, vaya a android> app> src> main> res> drawable> launcher_background.xml
Ahora descomente esto y reemplace @ mipmap / launch_image , con su ubicación de imagen.
Puede cambiar el color de su pantalla aquí:
fuente
La forma más fácil de agregar una pantalla de inicio en flutter es en este paquete: https://pub.dev/packages/flutter_native_splash
Guía de instalación (por el autor del paquete):
1. Configuración de la pantalla de bienvenida
Agregue su configuración al archivo pubspec.yaml de su proyecto o cree un archivo en su carpeta raíz del proyecto llamado flutter_native_splash.yaml con su configuración.
La imagen debe ser un archivo PNG.
Puede usar # en color también. color: "# 42a5f5" También puede configurar Android o iOS en falso si no desea crear una pantalla de inicio para una plataforma específica.
En caso de que su imagen use toda la pantalla disponible (ancho y alto), puede usar la propiedad de relleno.
Nota: la propiedad de relleno aún no está implementada para las pantallas de bienvenida de iOS.
Si desea deshabilitar la pantalla de inicio de pantalla completa en Android, puede usar la propiedad android_disable_fullscreen.
2. Ejecute el paquete
Después de agregar su configuración, ejecute el paquete con
flutter pub pub run flutter_native_splash:create
Cuando el paquete termine de ejecutarse, la pantalla de bienvenida estará lista.fuente
Deberías probar el siguiente código, funcionó para mí
fuente
las personas que reciben el error como imagen no encontrada después de aplicar la respuesta verificada, asegúrese de agregar @ mipmap / ic_launcher en lugar de @ mipmap / ic_launcher.png
fuente
Tanto @Collin Jackson como @Sniper tienen razón. Puede seguir estos pasos para configurar imágenes de inicio en Android e iOS, respectivamente. Luego, en su MyApp (), en su initState (), puede usar Future.delayed para configurar un temporizador o llamar a cualquier API. Hasta que se devuelva la respuesta del futuro, se mostrarán los íconos de inicio y luego, a medida que llegue la respuesta, puede pasar a la pantalla a la que desea ir después de la pantalla de inicio. Puedes ver este enlace: Flutter Splash Screen
fuente
Agregar una página como la siguiente y el enrutamiento podría ayudar
Si desea seguir adelante, consulte: https://www.youtube.com/watch?v=FNBuo-7zg2Q
fuente
Múltiples formas de hacer esto, pero la más fácil que uso es:
Para los iconos de inicio, uso la biblioteca Flutter Flutter Launcher Icon
Para la pantalla de bienvenida personalizada, creo diferentes resoluciones de pantalla y luego agrego las imágenes de bienvenida en la carpeta mipmap según la resolución para Android.
La última parte es ajustar launch_background.xml en la carpeta dibujable en la carpeta res en Android.
Simplemente cambie su código para que se vea a continuación:
Pocos desarrolladores que he visto agregan el splash como dibujable, probé esto, pero de alguna manera la compilación falla en Flutter 1.0.0 y Dart SDK 2.0+. Por lo tanto, prefiero agregar el splash en la sección de mapa de bits.
La creación de la pantalla de bienvenida de iOS es bastante más simple.
En la carpeta Runner en iOS, simplemente actualice los archivos LaunchImage.png con sus imágenes de pantalla Splash personalizadas con los mismos nombres que LaunchImage.png @ 2x, @ 3x, @ 4x.
Solo una adición, creo que es bueno tener una imagen 4x también en LaunchImage.imageset. Simplemente actualice su código en Content.json con las siguientes líneas, debajo de la escala 3x para agregar una opción de escala 4x:
fuente
haz que tu aplicación de material sea así
=> Agregar dependencia
=> import import 'paquete: splashscreen / splashscreen.dart';
La salida de pantalla final como esta puede cambiar en segundo lugar de acuerdo con sus requisitos, el círculo será redondo circular
fuente
Esta es la mejor forma y sin errores de agregar una pantalla de presentación dinámica en Flutter.
DÍA PRINCIPAL
SPLASHSCREEN.DART
CONSTANTES DARDO
PANTALLA HOGAR.DART
fuente
El código de Jaldhi Bhatt no funciona para mí.
Flutter lanza una operación ' Navigator solicitada con un contexto que no incluye un Navigator ".
Arreglé el código que envolvía el componente de consumidor de Navigator dentro de otro componente que inicializa el contexto de Navigator usando rutas, como se menciona en este artículo.
fuente
En caso de que desee una pantalla de bienvenida secundaria (después de la nativa), aquí hay un ejemplo simple que funciona:
fuente
Flutter le brinda la capacidad de tener una pantalla de inicio por defecto, pero hay muchos complementos que pueden hacer el trabajo. Si no desea usar un complemento para la tarea y le preocupa que agregar un nuevo complemento pueda afectar el tamaño de su aplicación. Entonces puedes hacerlo así.
Para Android
Abra launch_background.xml, luego puede colocar la imagen de la pantalla de bienvenida o el color de degradado que desee. Esto es lo primero que ve su usuario cuando abre su aplicación.
Para iOS
Abra su aplicación usando Xcode, haga clic en Runner> Assest.xcassets> LaunchImage, puede agregar la imagen aquí. Si desea editar qué posición debe tomar o verse la imagen de la pantalla de inicio, puede editarla en LaunchScreen.storyboard.
fuente
Estos son los pasos para configurar la pantalla de inicio en las plataformas IOS y Android para su aplicación Flutter.
Plataforma IOS
Todas las aplicaciones enviadas a Apple App Store deben usar un guión gráfico Xcode para proporcionar la pantalla de inicio de la aplicación. Hagamos esto en 3 pasos: -
Paso 1 : Abra ios / Runner.xcworkspace desde la raíz del directorio de su aplicación.
Paso 2 : Seleccione Runner / Assets.xcassets desde el Navegador de proyectos y arrastre sus imágenes de lanzamiento de todos los tamaños (2x, 3x, etc.). También puede generar diferentes tamaños de imágenes desde https://appicon.co/#image-sets
Paso 3 : Puede ver que el archivo LaunchScreen.storyboard muestra la imagen proporcionada, aquí también puede cambiar la posición de la imagen simplemente arrastrando la imagen. Para obtener más información, consulte la documentación oficial https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/launch-screen/
Plataforma Android
En Android, se muestra una pantalla de inicio mientras se inicializa su aplicación de Android. Configuremos esta pantalla de inicio en 3 pasos: -
Paso 1 : Abra el archivo android / app / src / main / res / drawable / launch_background.xml.
Paso 2 : en la línea número 4 puede seleccionar el color deseado: -
Paso 3 : en la línea número 10 puede cambiar la imagen: -
Eso es todo, ya está! Happy Coding :)
fuente
Para la
aplicación de Android -> src -> main -> res -> drawble-> launch_background.xml y descomenta el bloque comentado de esta manera
¿
Alguien se enfrenta a algún error después de codificar de esta manera? Use la sincronización con el sistema en el estudio de Android o invalide la memoria caché y reinicie. Esto resolvió mi problema.
fuente
Flutter.dev ya da la mejor respuesta, no es un error ni un problema, solo config. Solo toma tiempo para leer y todo estará resuelto. Que tengan un buen día todos.
https://flutter.dev/docs/development/ui/advanced/splash-screen
fuente
Puedes crearlo de dos maneras
Encontré una explicación completa para eliminar la pantalla blanca y mostrar la pantalla de bienvenida aquí
fuente
fuente