Arun Kumar
Estoy tratando de establecer una imagen de fondo para la página de inicio. Estoy obteniendo el lugar de la imagen desde el inicio de la pantalla y llenando el ancho pero no el alto. ¿Me estoy perdiendo algo en mi código? ¿Existen estándares de imagen para flutter? ¿Las imágenes se escalan según la resolución de pantalla de cada teléfono?
class BaseLayout extends StatelessWidget{
@override
Widget build(BuildContext context){
return Scaffold(
body: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Image.asset("assets/images/bulb.jpg")
]
)
)
);
}
}
collin jackson
No estoy seguro de entender tu pregunta, pero si quieres que la imagen ocupe toda la pantalla, puedes usar un DecorationImage
con un ataque de BoxFit.cover
.
class BaseLayout extends StatelessWidget{
@override
Widget build(BuildContext context){
return Scaffold(
body: Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("assets/images/bulb.jpg"),
fit: BoxFit.cover,
),
),
child: null /* add child content here */,
),
);
}
}
Para su segunda pregunta, aquí hay un enlace a la documentación sobre cómo incrustar imágenes de activos dependientes de la resolución en su aplicación.
-
Esto funciona siempre y cuando no tengas ningún hijo. Si agrega un elemento secundario, el tamaño del Contenedor se reduce al tamaño de su elemento secundario. ¿Sabes cómo hacer que el contenedor llene toda la pantalla sin importar el tamaño de su niño?
– HyLian
9 de marzo de 2018 a las 14:35
-
@ColinJackson, ¿cuál debería ser el tamaño de la imagen? ancho * alto?
– ArgaPK
25 de septiembre de 2018 a las 13:28
-
@HyLian establece la propiedad de restricciones del contenedor,
constraints: BoxConstraints.expand()
–Rustem Kakimov
18 de enero de 2020 a las 2:14
-
@HyLian agregar
width: double.infinity
al Contenedor con la imagen.– jkoech
7 abr 2020 a las 19:32
-
¿Cómo repetir la imagen del tipo de patrón en el fondo del contenedor en flutter?
– Kamlesh
11 oct 2020 a las 13:05
Si usas un Container
como el cuerpo del Scaffold
su tamaño será en consecuencia el tamaño de su hijo y, por lo general, eso no es lo que desea cuando intenta agregar una imagen de fondo a su aplicación.
Mirando esta otra pregunta, @ collin-jackson también sugería usar Stack
en lugar de Container
como el cuerpo del Scaffold
y definitivamente hace lo que quieres lograr.
Así es como se ve mi código
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new Stack(
children: <Widget>[
new Container(
decoration: new BoxDecoration(
image: new DecorationImage(image: new AssetImage("images/background.jpg"), fit: BoxFit.cover,),
),
),
new Center(
child: new Text("Hello background"),
)
],
)
);
}
-
¿Cuál debe ser el tamaño de la imagen? ancho * alto?
– ArgaPK
25 de septiembre de 2018 a las 13:28
-
Al abrir el teclado, se cambia el tamaño de la imagen. ¿Qué se puede hacer para eso?
-Michael Hathi
18 de septiembre de 2019 a las 5:09
-
@MichaelHathi stackoverflow.com/questions/52572850/…
– dilshan
26 de febrero de 2021 a las 7:55
policíasencarretera
Captura de pantalla:
Código:
@override
Widget build(BuildContext context) {
return DecoratedBox(
decoration: BoxDecoration(
image: DecorationImage(image: AssetImage("your_asset"), fit: BoxFit.cover),
),
child: Center(child: FlutterLogo(size: 300)),
);
}
-
Coloque un cuadro de texto y abra el teclado, luego la imagen se moverá hacia arriba, lo cual no es una buena solución. Cualquier otra sugerencia, por favor compartir.
– Kamlesh
28 de febrero de 2021 a las 17:26
Puedes usar Stack
para hacer que la imagen se estire a pantalla completa.
Stack(
children: <Widget>
[
Positioned.fill( //
child: Image(
image: AssetImage('assets/placeholder.png'),
fit : BoxFit.fill,
),
),
...... // other children widgets of Stack
..........
.............
]
);
Nota: Opcionalmente, si está utilizando un Scaffold
puedes poner el Stack
dentro de Scaffold
con o sin AppBar
de acuerdo a sus necesidades.
Pude aplicar un fondo debajo del Scaffold
(e incluso es AppBar
) poniendo el Scaffold
debajo de Stack
y estableciendo un Container
en la primera “capa” con la imagen de fondo establecida y fit: BoxFit.cover
propiedad.
Ambos Scaffold
y AppBar
tiene que tener el backgroundColor
establecer como Color.transparent
y el elevation
de AppBar
tiene que ser 0 (cero).
¡Voila! ¡Ahora tiene un bonito fondo debajo de todo Scaffold y AppBar! 🙂
import 'package:flutter/material.dart';
import 'package:mynamespace/ui/shared/colors.dart';
import 'package:mynamespace/ui/shared/textstyle.dart';
import 'package:mynamespace/ui/shared/ui_helpers.dart';
import 'package:mynamespace/ui/widgets/custom_text_form_field_widget.dart';
class SignUpView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Stack( // <-- STACK AS THE SCAFFOLD PARENT
children: [
Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("assets/images/bg.png"), // <-- BACKGROUND IMAGE
fit: BoxFit.cover,
),
),
),
Scaffold(
backgroundColor: Colors.transparent, // <-- SCAFFOLD WITH TRANSPARENT BG
appBar: AppBar(
title: Text('NEW USER'),
backgroundColor: Colors.transparent, // <-- APPBAR WITH TRANSPARENT BG
elevation: 0, // <-- ELEVATION ZEROED
),
body: Padding(
padding: EdgeInsets.all(spaceXS),
child: Column(
children: [
CustomTextFormFieldWidget(labelText: 'Email', hintText: 'Type your Email'),
UIHelper.verticalSpaceSM,
SizedBox(
width: double.maxFinite,
child: RaisedButton(
color: regularCyan,
child: Text('Finish Registration', style: TextStyle(color: white)),
onPressed: () => {},
),
),
],
),
),
),
],
);
}
}
Jitesh mohita
Podemos usar Container y marcar su altura como infinito
body: Container(
height: double.infinity,
width: double.infinity,
child: FittedBox(
fit: BoxFit.cover,
child: Image.network(
'https://cdn.pixabay.com/photo/2016/10/02/22/17/red-t-shirt-1710578_1280.jpg',
),
),
));
Producción:
Boken
body: Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage('images/background.png'),fit:BoxFit.cover
)
),
);
-
La respuesta proporcionada se marcó para su revisión como Publicación de baja calidad. Aquí hay algunas pautas para ¿Cómo escribo una buena respuesta? Esta respuesta proporcionada podría beneficiarse de una explicación. Las respuestas de solo código no se consideran respuestas “buenas”.
–Trenton McKinney
8 de agosto de 2020 a las 6:14
¿Cuál debe ser el tamaño de la imagen? ancho * alto?
– ArgaPK
25 de septiembre de 2018 a las 13:28
¿Alguien puede dar un ejemplo con una llamada de imagen de red?
– El chico multimillonario
12 de febrero de 2019 a las 21:22
@TheDeadGuy Image.network(‘ejemplo.com/ruta/a/imagen.jpg’)?
– Desarrollador SacWeb
23 de abril de 2019 a las 21:26
solución de pago aquí en este enlace stackoverflow.com/a/62245570/9955978
– Shubham Sharma
19 de junio de 2020 a las 9:31
8 ejemplos de imágenes de fondo de Flutter
– Vijay Ram
5 de febrero de 2021 a las 9:54