0
votes

Impossible de remplir l'arrière-plan avec une image

Je suis nouveau ici, donc je m'excuse à l'avance pour toute erreur qui pourrait enfreindre les règles de cette plate-forme.

J'ai un problème avec le remplissage de mon application Android avec une image d'arrière-plan. J'ai essayé de suivre this , mais j'ai une exception de rendu.

Le code, qui n'utilise pas la classe [SizedBox] ressemble à ceci: p >

return Scaffold(
      appBar: new AppBar(title: Text("Progresso nel edilizia")),

      body: SingleChildScrollView(
          child: Container(
            decoration: const BoxDecoration(
              image: DecorationImage(
                image: AssetImage('assets/login_background.jpg'),
                fit: BoxFit.cover
              )
            ),
            child: LoginBody(),
        ) 
      ),
    );

La sortie: https://ibb.co/0srf6dN


0 commentaires

3 Réponses :


0
votes

Essayez le code ci-dessous

   return Scaffold(
  body: Container(
    decoration: BoxDecoration(
      image: DecorationImage(
        image: AssetImage("assets/login_background.jpg"),
        fit: BoxFit.cover,
      ),
    ),
  ),
);


1 commentaires

Cela fonctionne, mais si je me débarrasse de [SingleChildScrollView], j'obtiens une exception de rendu chaque fois que j'appuie sur le champ de texte du mot de passe (image de l'interface utilisateur dans le message).



0
votes

Essayez ceci, mais assurez-vous que l'image que vous utilisez a un rapport hauteur / largeur correct pour s'adapter à la hauteur.

@override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: new AppBar(title: Text("Progresso nel edilizia")),
      body: SingleChildScrollView(
          child: Container(
        height: MediaQuery.of(context).size.height,
        decoration: const BoxDecoration(
            image: DecorationImage(
                image: AssetImage('assets/login_background.jpg'),
                fit: BoxFit.fitHeight)),
        child: Container(),
      )),
    );
  }


0 commentaires

0
votes

Utilisez une pile avec un conteneur en utilisant toute la largeur et la hauteur de l'écran en arrière-plan. Comme ceci:

return Scaffold(
  appBar: AppBar(title: Text("Progresso nel edilizia")),
  body: Stack(
    children: <Widget>[
      Container(
        width: double.infinity,
        height: double.infinity,
        decoration: const BoxDecoration(
          image: DecorationImage(
            image: AssetImage('assets/login_background.jpg'),
            fit: BoxFit.cover,
          ),
        ),
      ),
      SingleChildScrollView(
        child: LoginBody(),
      ),
    ],
  ),
);


0 commentaires