Le widget Container permet de modifier l’apparence et la mise en page. d’une application. En fait, il encapsule plusieurs widgets.

Lors de la création d’une application, la mise en page est une partie très importante. La création d’une mise en page dans Flutter permet de placer et de positionner des objets, tels que du texte et des boutons ou d’autres composants.

Si vous souhaitez ajouter une hauteur, une largeur, des marges, des bordures et des couleurs d’arrière-plan à un widget, vous utiliserez surement le widget Container.

En effet, il est utilisé par de nombreux widgets pour ajouter des propriétés de style.

Nous avons déjà vu le constructeur du widget Text. Voyons à présent à quoi ressemble le constructeur de la classe Container.

Container(
{Key? key,
AlignmentGeometry? alignment,
EdgeInsetsGeometry? padding,
Color? color,
Decoration? decoration,
Decoration? foregroundDecoration,
double? width,
double? height,
BoxConstraints? constraints,
EdgeInsetsGeometry? margin,
Matrix4? transform,
AlignmentGeometry? transformAlignment,
Widget? child,
Clip clipBehavior}
)

Le widget Container dans flutter est un widget qui ne peut avoir qu’un seul widget enfant. De plus, il ne doit pas être utilisé directement sans widget parent. Par défaut, Container occupe toute la largeur et la hauteur du widget enfant donné.

La propriété child

La principale caractéristique de ce type de widget (avec un seul enfant) est qu’il possède une propriété child. Cette propriété est utilisée pour charger un enfant, qui à son tour peut charger d’autres widgets tels que Text, ListView, etc.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
        appBar: AppBar(
        centerTitle: true,
        title: const Text('Le widget Container'),
    ),
    body: Container(child: Text("La propriété child",
    style: TextStyle(fontSize: 40)))));
  }
}

Les propriétés d’alignement

En utilisant le widget Container, nous pouvons ajuster la position du widget enfant à l’aide des propriétés d’alignement :

  • bottomCenter, en bas et au milieu.
  • bottomLeft, c’est en bas à gauche.
  • bottomRight, en bas à droite.
  • center, au centre.
  • centerLeft, c’est au centre à gauche.
  • centerRight, au centre à droite.
  • topCenter, en haut au centre.
  • topLeft, c’est en haut à gauche.
  • topRight, en haut à droite.

La propriété color dans le widget Container

La propriété Color vous donne la possibilité de donner une couleur à un widget particulier du widget Container. Voici les trois façons différentes pour le faire :

  • color : Colors.orangeAccent.
  • color : color(0xFFFFFFFF).
  • Color c = const Color.fromRGBO(66, 165, 245, 1.0).

RGBO signifie R = Rouge, G = Vert, B = Bleu, O = Opacité, ou chaque couleur correspond à un nombre.

La plupart des IDE vous permettent d’afficher les couleurs lorsque vous tapez Colors., ce qui vous donnera la possibilité de choisir.

Si vous souhaitez une couleur personnalisée, vous pouvez utiliser le code suivant :

color: Color(0xFF42A5F5);
color: Color.fromARGB(0xFF, 0x42, 0xA5, 0xF5);
color: Color.fromARGB(255, 66, 165, 245);
color: Color.fromRGBO(66, 165, 245, 1.0);

La hauteur et la largeur

De plus, nous pouvons définir, la hauteur et la largeur du widget Container en utilisant les propriétés height pour la hauteur et width pour la largeur.

Les marges du widget Container – margin

La marge est utilisée pour créer une distance entre Container et les autres widgets. La propriété margin peut être appliquée aux 4 côtés de Container à l’aide de la fonction EdgeInsets.all().

Cependant, si vous souhaitez modifier la marge d’un seul côté, vous pouvez utiliser le code suivant :

margin: EdgeInsets.only(left: 20)

Les marges intérieurs – padding

On les utilise pour ajouter une distance entre Container et le widget qu’il contient. Comme avec les marges, vous pouvez utiliser la fonction EdgeInsets.all() pour définir le padding sur les quatre côtés.

Les bordures du widget Container

La propriété border permet de connaître les limites de l’objet en cours de construction. Cette propriété contribue également à simplifier le processus de mise en page car elle sert de ligne directrice.

La propriété Transform

Elle sert à pivoter Container, en utilisant divers axes de rotation tels que X, Y et Z où nous utilisons la fonction Matrix4 pour effectuer la rotation.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            appBar: AppBar(
              centerTitle: true,
              title: const Text('Le widget Container'),
            ),
            body: Container(
                padding: EdgeInsets.all(20),
                margin: EdgeInsets.all(20),
                transform: Matrix4.rotationZ(0.1),
                height: 200,
                width: 200,
                alignment: Alignment.bottomCenter,
                color: Colors.purpleAccent,
                child: Text("La propriété child",
                    style: TextStyle(color: Colors.white, fontSize: 40)))));
  }
}
widget Container

La propriété Decoration

Vous pouvez décorer Container avec divers effets de décoration, tels que changer la couleur de la bordure, fournir une image ou créer un effet d’ombre. Il existe de nombreux autres effets que vous pouvez ajouter avec decoration : BoxDecoration().

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            appBar: AppBar(
              centerTitle: true,
              title: const Text('Le widget Container'),
            ),
            body: Container(
                decoration: new BoxDecoration(
                    gradient: const LinearGradient(colors: [
                  Colors.lightBlue,
                  Colors.greenAccent,
                  Colors.purple
                ])),
                height: 280,
                width: 200,
                margin: EdgeInsets.all(20))));
  }
}
Container

Catégories : Flutter

0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *