286 votes

Comment définir l'image d'arrière-plan dans Flutter ?

J'essaie de définir une image d'arrière-plan pour la page d'accueil. L'image est placée au début de l'écran et remplit la largeur mais pas la hauteur. Est-ce qu'il me manque quelque chose dans mon code ? Existe-t-il des normes d'image pour Flutter ? Les images sont-elles mises à l'échelle en fonction de la résolution de l'écran de chaque téléphone ?

class BaseLayout extends StatelessWidget{
  @override
  Widget build(BuildContext context){
    return new Scaffold(
      body: new Container(
        child: new Column(
          mainAxisAlignment: MainAxisAlignment.start,
          children: [
            new Image.asset("assets/images/bulb.jpg") 
          ]
        )
      )
    );
  }
}

0 votes

Quelle doit être la taille de l'image ? largeur*hauteur ?

0 votes

Quelqu'un peut-il donner un exemple avec un appel d'image réseau

1 votes

@TheDeadGuy Image.network(' exemple.com/chemins/vers/image.jpg'. ) ?

10voto

jitesh mohite Points 3119

Nous pouvons utiliser le conteneur et marquer sa hauteur comme étant l'infini.

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',
        ),
      ),
    ));

Sortie :

enter image description here

5voto

body: Container(
    decoration: BoxDecoration(
      image: DecorationImage(
        image: AssetImage('images/background.png'),fit:BoxFit.cover
      )
    ),
);

0 votes

La réponse fournie a été signalée pour examen en tant que message de faible qualité. Voici quelques directives pour Comment rédiger une bonne réponse ? . Cette réponse fournie pourrait bénéficier d'une explication. Les réponses sous forme de code uniquement ne sont pas considérées comme de "bonnes" réponses.

5voto

TDM Points 553

Les autres réponses sont excellentes. Voici une autre façon de procéder.

  1. Ici, j'utilise SizedBox.expand() pour remplir l'espace disponible et pour transmettre des contraintes strictes à ses enfants (Container).
  2. BoxFit.cover enum pour Zoomer l'image et couvrir tout l'écran

    Widget build(BuildContext context) { return Scaffold( body: SizedBox.expand( // -> 01 child: Container( decoration: BoxDecoration( image: DecorationImage( image: NetworkImage('https://flutter.github.io/assets-for-api-docs/assets/widgets/owl-2.jpg'), fit: BoxFit.cover, // -> 02 ), ), ), ), ); }

screenshot

0 votes

Réponse parfaite.

4voto

vinayak paste Points 41
decoration: BoxDecoration(
      image: DecorationImage(
        image: ExactAssetImage("images/background.png"),
        fit: BoxFit.cover
      ),
    ),

cela fonctionne également à l'intérieur d'un conteneur.

4voto

Dulya Perera Points 79

Pour définir une image de fond sans rétrécissement après l'ajout de l'enfant, utilisez ce code.

  body: Container(
    constraints: BoxConstraints.expand(),
      decoration: BoxDecoration(
        image: DecorationImage(
            image: AssetImage("assets/aaa.jpg"),
        fit: BoxFit.cover,
        )
      ),

    //You can use any widget
    child: Column(
      children: <Widget>[],
    ),
    ),

0 votes

Si vous mettez une zone de texte et ouvrez le clavier, l'image sera déplacée vers le haut, ce qui n'est pas une bonne solution. Si vous avez d'autres suggestions, veuillez les partager.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X