Alışkanlık Takipçisi: Alışkanlıkların
Coddy'nin Flutter Journey'sinin Projeler bölümünün bir parçası. Ders 28 / 36.
Son uygulama bir alışkanlık takip uygulaması: her alışkanlık için bir kart, haftanın her günü için bir onay işareti, bir seri, haftan iyi geçtikçe dolan bir halka ve karanlık mod. İnsanların her gün açtığı türden bir uygulama.
Veriler başlangıç projesinde. Bir Habit, bir ada ve pazartesiden pazara yedi bool değerine sahiptir:
Habit('Drink water', [true, true, true, false, true, false, false]),
Habit('Stretch', List.filled(7, false)),List.filled(7, false), hiçbir şey yapılmamış bir haftayı temsil eden, yedi false değerinden oluşan bir liste oluşturur.
Her alışkanlık için bir kartla başla. Bir kartın içinde zamanla pek çok şey olur, bu yüzden kendi widget’ı olan ve bir Habit alan HabitCard widget’ını oluştur. Ekranı kısa tut: her alışkanlık için bir HabitCard içeren bir ListView. Daha sonra orada duracak bir düğme için listenin altında yer bırak (88 piksel).
Görev
KolayAlışkanlıkları göster:
requiredhabitalan birHabitCardwidget'ı yaz ve alışkanlığın adını temanıntitleMediumstiliyle göster- Kart,
margin: const EdgeInsets.only(top: 12)değerine sahip birCardolsun ve yakında başka alt öğeler de alacak birColumnçevresinde 16 piksel dolgu içersin Centeröğesini,EdgeInsets.fromLTRB(16, 8, 16, 88)dolgulu birListViewve her alışkanlık için birHabitCardile değiştir
Kendin dene
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'),
),
);
}
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Projeler bölümündeki tüm dersler
1Proje: Yapılacaklar Listesi
Yapılacaklar Listesi: Görev ListesiYapılacaklar Listesi: Görev Ekleme4Proje: Alışkanlık Takipçisi
Alışkanlık Takipçisi: AlışkanlıklarınAlışkanlık Takipçisi: HaftaKendi başına pratik yap: Online Flutter derleyicisi