Comment créer des éléments visuels scrollables dans Flutter


Avatar de Pierre Courtois

Dans cet article, nous allons explorer comment créer des éléments visuels scrollables dans Flutter. Que vous ayez besoin de faire défiler une page entière ou simplement une liste d’éléments, Flutter propose des widgets répondant à vos besoins.


scrollables elements flutter

Utiliser SingleChildScrollView pour créer une page scrollable

Le widget SingleChildScrollView est idéal pour créer une page où le contenu dépasse la taille de l’écran. Celui-ci va en effet permettre à l’utilisateur de faire défiler le contenu, de manière verticale.

Voici un exemple simple d’utilisation du widget SingleChildScrollView pour créer une page scrollable :

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('SingleChildScrollView Example'),
        ),
        body: SingleChildScrollView(
          child: Padding(
            padding: const EdgeInsets.all(16.0),
            child: Column(
              children: <Widget>[
                Container(
                  color: Colors.blue,
                  height: 300.0,
                  child: Center(
                      child: Text('Section 1',
                          style: TextStyle(color: Colors.white, fontSize: 24))),
                ),
                SizedBox(height: 16.0),
                Container(
                  color: Colors.red,
                  height: 300.0,
                  child: Center(
                      child: Text('Section 2',
                          style: TextStyle(color: Colors.white, fontSize: 24))),
                ),
                SizedBox(height: 16.0),
                Container(
                  color: Colors.green,
                  height: 300.0,
                  child: Center(
                      child: Text('Section 3',
                          style: TextStyle(color: Colors.white, fontSize: 24))),
                ),
                SizedBox(height: 16.0),
                Container(
                  color: Colors.yellow,
                  height: 300.0,
                  child: Center(
                      child: Text('Section 4',
                          style: TextStyle(color: Colors.white, fontSize: 24))),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

Utiliser ListView pour créer une liste scrollable

Si vous souhaitez simplement créer une liste scrollable, utilisez plutôt le widget ListView. Il est souvent utilisé pour les listes de données, telles que les listes de contacts ou bien des flux d’actualités.

Voici un exemple simple d’utilisation du widget ListView accompagné de la méthode .builder() :

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Exemple de ListView'),
        ),
        body: ListView.builder(
          itemCount: 20,
          itemBuilder: (context, index) {
            return ListTile(
              leading: Icon(Icons.person),
              title: Text('Item $index'),
              subtitle: Text('Sous titre $index'),
            );
          },
        ),
      ),
    );
  }
}

Ici, ma liste se compose de 20 éléments (itemCount), que je viens définir via le widget Listile. La liste étant plus grande que la taille de l’écran, celle-ci va automatiquement être scrollable.

Scroll horizontal

Notez également que le widget Listview possède une propriété scrollDirection vous permettant de définir l’axe de défilement de vos ListTiles. Celui-ci peut être soit vertical, soit horizontal.

Plus de guides Flutter

À la recherche de plus de guides pour coder rapidement une application Flutter dynamique ? Pourquoi ne pas consulter la liste complète ?

Avatar de Pierre Courtois