Silme ve ayraç
- Flutter kursu
- Başlangıç
- Ders 74/99
- 4 dk
Kaydırarak silme ve satır ayraçlarını eklersin.
Dismissible ile silme
Kaydırarak silme yapmak için Dismissible widget'ı kullanılır. Dismissible, child'ını sarmalar ve kullanıcı tarafından sağa veya sola kaydırıldığında onDismissed callback'ini çağırır. Her Dismissible'a benzersiz bir key verilmelidir.
Dismissible(
key: ValueKey(todo.title),
onDismissed: (direction) {
setState(() {
list.removeAt(index);
});
},
child: ListTile(...),
)Divider ile ayraç
Liste satırları arasına ayraç koymak için ListView.separated ve Divider kullanılır. separatorBuilder her satır arasına bir widget çizer; çoğunlukla bir Divider verilir. Böylece satırlar görsel olarak ayrılır.
Uygulama Kaydırarak sil
sil adında bir fonksiyon yaz; List<Todo> ve int index parametreleri alsın, ilgili elemanı listeden çıkarsın ve 'Silindi' yazdırsın. main içinde iki görevli bir liste oluştur ve sil'i 0 indeksiyle çağır.
Başlangıç kodu
import 'package:flutter/material.dart';
class Todo {
String title;
bool done;
Todo({required this.title, this.done = false});
}
// sil fonksiyonu yaz: List<Todo> ve int index alsin
// ilgili elemani listeden cikar
// "Silindi" yazdirsin
void main() {
final list = [Todo(title: 'A'), Todo(title: 'B')];
// sil'i cagir
}Örnek çözüm
import 'package:flutter/material.dart';
class Todo {
String title;
bool done;
Todo({required this.title, this.done = false});
}
void sil(List<Todo> list, int index) {
list.removeAt(index);
print('Silindi');
}
void main() {
final list = [Todo(title: 'A'), Todo(title: 'B')];
sil(list, 0);
}Beklenen çıktı
Silindi
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Dismissible hangi parametreye benzersiz değer verilmelidir?
- shape
- key Doğru cevap
- padding
- color
Açıklama: Dismissible'a benzersiz bir key verilmelidir; color, shape ve padding benzersiz olmayı gerektirmez.
2 Dismissible'a onDismissed ekle
Dismissible(
key: ValueKey(todo.title),
____: (direction) {
list.removeAt(index);
},
child: ListTile(...),
)
Dismissible(
key: ValueKey(todo.title),
onDismissed: (direction) {
list.removeAt(index);
},
child: ListTile(...),
)
Açıklama: Kaydırma tamamlandığında çağrılması için onDismissed kullanılır; onTap, onPressed veya onLongPress kaydırma olayını yakalamaz.
3 Silme ve ayraç parçaları
| Kavram | Anlamı |
|---|---|
Dismissible |
Kaydırarak silme sağlar |
key |
Dismissible'ın benzersiz kimliği |
Divider |
Satır ayraç çizgisi |
ListView.separated |
Ayraçlı liste |