Suivi des habitudes : Vos habitudes
Fait partie de la section Projets du Journey Flutter de Coddy. Leçon 28 sur 36.
La dernière application est un suivi des habitudes : une carte par habitude avec une coche pour chaque jour de la semaine, une série, un anneau qui se remplit au fil des bons jours de votre semaine et un mode sombre. C’est le genre d’application que l’on ouvre tous les jours.
Les données se trouvent dans le projet de départ. Un Habit possède un nom et sept bools, du lundi au dimanche :
Habit('Drink water', [true, true, true, false, true, false, false]),
Habit('Stretch', List.filled(7, false)),List.filled(7, false) crée une liste de sept false, soit une semaine où rien n’a été fait.
Commencez par créer une carte pour chaque habitude. À la fin, une carte contient beaucoup d’éléments : elle aura donc son propre widget, HabitCard, qui prend un Habit. L’écran reste concis : une ListView avec un HabitCard pour chaque habitude. Laissez un espace en bas de la liste (88 pixels) pour un bouton qui y flottera plus tard.
Défi
FacileAffiche les habitudes :
- écris un widget
HabitCardqui prend unrequiredhabitet affiche son nom avec letitleMediumdu thème - la carte est un
Cardavecmargin: const EdgeInsets.only(top: 12), contenant une marge intérieure de 16 pixels autour d’unColumn(il recevra bientôt d’autres enfants) - remplace le
Centerpar unListViewavec la marge intérieureEdgeInsets.fromLTRB(16, 8, 16, 88)et unHabitCardpour chaque habitude
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) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.green),
),
home: const HabitScreen(),
);
}
}
const List<String> dayNames = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
class Habit {
Habit(this.name, this.days);
final String name;
final List<bool> days;
}
class HabitScreen extends StatefulWidget {
const HabitScreen({super.key});
@override
State<HabitScreen> createState() => _HabitScreenState();
}
class _HabitScreenState extends State<HabitScreen> {
final List<Habit> _habits = [
Habit('Drink water', [true, true, true, false, true, false, false]),
Habit('Read 10 pages', [true, false, true, true, false, false, false]),
Habit('Stretch', List.filled(7, false)),
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Habits')),
body: const Center(
child: Text('Your habits go here'),
),
);
}
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Projets
1Projet : Liste de tâches
Liste de tâches : La liste des tâchesListe de tâches : Ajouter une tâche4Projet : Suivi des habitudes
Suivi des habitudes : Vos habitudesSuivi des habitudes : La semaineEntraînez-vous par vous-même : Compilateur Flutter en ligne