Silmek İçin Kaydırın
Coddy'nin Flutter Journey'sinin Listeler ve Ekranlar bölümünün bir parçası. Ders 26 / 33.
Bir e-posta veya alışveriş uygulamasında, bir öğeyi ekrandan kaydırarak kaldırırsın. Satırı bir Dismissible ile sar:
Dismissible(
key: ValueKey(item),
onDismissed: (direction) {
setState(() {
items.remove(item);
});
},
child: ListTile(title: Text(item)),
)Satır parmağının altında kayıp gider. Kaybolduğunda onDismissed çalışır ve setState içinde öğeyi listenden kaldırırsın. Bunu yapmazsan listede hâlâ bulunur ve Flutter bir hatayla durur: kaldırdığı satır hâlâ listededir.
key, Flutter'a hangi satırın hangisi olduğunu söyler; bu nedenle her satır için farklı olmalıdır: ValueKey(item) öğenin kendisini kullanır.
items final olarak tanımlanmıştır ve yine de ondan öğe kaldırabilirsin: final, değişkenin her zaman aynı listeyi tuttuğu anlamına gelir; listenin hiç değişmediği anlamına gelmez.
Görev
KolayUygulama çubuğu öğeleri sayar. Alışveriş listesini kaydırılabilir hâle getir: her ListTile öğesini, anahtarı ValueKey(item) olacak şekilde bir Dismissible içine sar ve öğe kaydırılarak kaldırıldığında onu items listesinden çıkar.
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 StatefulWidget {
const HomeScreen({super.key});
@override
State<HomeScreen> createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
final List<String> items = ['Milk', 'Bread', 'Eggs', 'Apples', 'Cheese'];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('${items.length} items')),
body: ListView(
children: [
for (String item in items)
ListTile(title: Text(item)),
],
),
);
}
}
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çlar6Sekmeler, Ç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