map ile Verilerden Widget'lar
Coddy'nin Flutter Journey'sinin Listeler ve Ekranlar bölümünün bir parçası. Ders 15 / 33.
Bir listenin map yöntemi, her öğe üzerinde bir işlev çalıştırarak yeni bir liste oluşturur. Verilerden oluşan bir listeyi widget'lardan oluşan bir listeye dönüştürmenin yolu budur:
ListView(
children: books.map((book) => ListTile(title: Text(book.title))).toList(),
)(book) => ListTile(...) kısa bir işlevdir: bir book alır ve okun ardından kutucuğu döndürür. map, bu işlevi her kitap için sırayla çağırır.
map henüz bir List döndürmez, bu yüzden sonuna .toList() ekleyin: children: bir listeye ihtiyaç duyar. Koleksiyon for döngüsü de aynı işi yapar. Okumayı daha kolay bulduğunuzu kullanın; gerçek uygulamalarda ikisini de göreceksiniz.
map verileri başka verilere de dönüştürür: books.map((book) => book.title).toList(), başlıklardan oluşan bir List<String> listesidir.
Görev
KolayListede beş kitap var, ancak ekranda elle yazılmış üç kutucuk görünüyor. Üç kutucuğu books.map(...).toList() ile değiştir; böylece her kitap, başlığı ve alt başlık olarak yazarıyla birlikte bir kutucukta gösterilir.
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) {
final List<Book> books = [
Book('Dune', 'Frank Herbert'),
Book('Emma', 'Jane Austen'),
Book('Ulysses', 'James Joyce'),
Book('Coraline', 'Neil Gaiman'),
Book('Beloved', 'Toni Morrison'),
];
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(title: const Text('Books')),
body: ListView(
children: [
ListTile(
title: Text(books[0].title),
subtitle: Text(books[0].author),
),
ListTile(
title: Text(books[1].title),
subtitle: Text(books[1].author),
),
ListTile(
title: Text(books[2].title),
subtitle: Text(books[2].author),
),
],
),
),
);
}
}
class Book {
final String title;
final String author;
Book(this.title, this.author);
}
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 Arama6Sekmeler, Ç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