Correction du débordement : renvoyer à la ligne
Fait partie de la section Des mises en page adaptées du Journey Flutter de Coddy. Leçon 8 sur 30.
Certaines lignes contiennent des éléments qui doivent s’enchaîner comme des mots dans une phrase : des balises, des filtres, des puces. Lorsqu’il y en a trop pour tenir sur une seule ligne, un Row déborde vers la droite.
Wrap prend la même liste children: et, lorsque l’enfant suivant ne tient pas sur la ligne, il commence une nouvelle ligne en dessous :
Wrap(
children: [
for (final tag in tags) Text(tag),
],
)C’est la troisième solution à un débordement. Utilisez Expanded lorsqu’un enfant doit pouvoir rétrécir, une vue défilante lorsque la page est plus longue que l’écran, et Wrap lorsque les enfants doivent passer à la ligne suivante.
Un Wrap conserve chaque enfant à la taille qu’il demande. Il ne les comprime jamais ; il les fait simplement passer à la ligne suivante.
Défi
FacileLes étiquettes débordent à droite. Faites-les passer sur autant de lignes que nécessaire, comme les mots d’un paragraphe.
Essayez vous-même
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
final tags = ['Dart', 'Flutter', 'Mobile', 'Design', 'Games', 'Web'];
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(title: const Text('Interests')),
body: Padding(
padding: const EdgeInsets.all(16),
child: Row(
children: [
for (final tag in tags)
Container(
width: 110,
height: 40,
decoration: BoxDecoration(
color: Colors.purple.shade100,
borderRadius: BorderRadius.circular(20),
),
child: Center(child: Text(tag)),
),
],
),
),
),
);
}
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Des mises en page adaptées
1Partager une ligne
Expanded remplit la lignePartager l’espace avec flexFlexible épouse son enfantSpacer écarte les éléments4Tailles et points de rupture
Pleine largeur : double.infinityUne largeur maximaleTaille de l’écran : MediaQueryPoints de rupture de LayoutBuilder2L’erreur de débordement
L’erreur de débordementCorrection du débordement : agrandirCorrection du débordement : faire défilerCorrection du débordement : renvoyer à la ligneEspacement à l’intérieur d’un renvoi à la ligne5Énumérations et switch
Énumérations pour les types d’écranUtiliser switch avec une énumérationExpressions switchEntraînez-vous par vous-même : Compilateur Flutter en ligne