Tarif Kitabı: Tarif Listesi
Coddy'nin Flutter Journey'sinin Listeler ve Ekranlar bölümünün bir parçası. Ders 28 / 33.
Bu bölümde öğrendiklerinle baştan sona bir uygulama yapma zamanı: bir tarif defteri. Uygulamada tariflerin listesi, her tarifin malzemelerini gösteren bir ekran ve favorilerinizin bulunduğu bir sekme var.
Verilerle başlayın. Uygulamada zaten adı, hazırlanma süresi ve malzeme listesi olan bir Recipe sınıfı ve build yönteminin başında dört tarif var. Her tarifin ingredients özelliği bir List<String>; bir alan da liste olabilir.
İlk ekran liste ekranıdır. Tarif sayısı yüzlere çıkabileceğinden, bu ekranı her tarif için bir ListTile kullanarak ListView.builder ile oluşturun.
Görev
KolayNo recipes yet metnini tarifler listesiyle değiştir:
- her tarif için bir
ListTileiçeren birListView.builder - her kutucuğun
leading:değeri olarakIcons.restaurant_menu, başlık olarak tarifin adı ve alt başlık olarak20 min(tarifin dakika süresiyle birlikte) bulunur
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 const MaterialApp(
debugShowCheckedModeBanner: false,
home: HomeScreen(),
);
}
}
class HomeScreen extends StatelessWidget {
const HomeScreen({super.key});
@override
Widget build(BuildContext context) {
final List<Recipe> recipes = [
Recipe(name: 'Pancakes', minutes: 20, ingredients: ['Flour', 'Eggs', 'Milk', 'Butter']),
Recipe(name: 'Tomato Soup', minutes: 35, ingredients: ['Tomatoes', 'Onion', 'Garlic', 'Olive oil']),
Recipe(name: 'Guacamole', minutes: 10, ingredients: ['Avocados', 'Lime', 'Onion', 'Salt']),
Recipe(name: 'Fried Rice', minutes: 25, ingredients: ['Rice', 'Eggs', 'Peas', 'Soy sauce']),
];
return Scaffold(
appBar: AppBar(title: const Text('Recipe Book')),
body: const Center(
child: Text('No recipes yet'),
),
);
}
}
class Recipe {
final String name;
final int minutes;
final List<String> ingredients;
Recipe({required this.name, required this.minutes, required this.ingredients});
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Listeler ve Ekranlar bölümündeki tüm dersler
1Kaydırılabilir Listeler
Kaydırılan Bir ListeListe ÖğeleriBaş ve SonBir Liste Öğesine DokunmaSatırlar Arasındaki Ayraçlar4Kendi Sınıflarınız
Verileriniz İçin Bir SınıfAdlandırılmış ve Zorunlu ParametrelerBoş Bırakılabilen Alanlarmap ile Verilerden Widget'larwhere ile Bir Listeyi FiltrelemeBir Map'te Arama7Proje: Tarif Kitabı
Tarif Kitabı: Tarif ListesiTarif Kitabı: Tarif Ekranı6Sekmeler, Çekmeceler ve Kaydırma Hareketleri
Gezinme Çubuğuyla SekmelerAçık Sekme İçin Dolu SimgelerYan ÇekmeceSilmek İçin KaydırınKaydırmayı Geri AlınKendi başına pratik yap: Online Flutter derleyicisi