onPressed ve child
- Flutter kursu
- Başlangıç
- Ders 62/99
- 4 dk
onPressed callback ve child içeriğinin rollerini öğrenirsin.
onPressed ve child rolleri
onPressed, butona basıldığında çağrılacak callback fonksiyonudur. child ise butonun içinde gösterilen widget'tır ve çoğunlukla bir Text olur. Eğer onPressed değerini null verirsen buton devre dışı kalır; gri görünür ve basılamaz.
ElevatedButton(
onPressed: null,
child: Text('Pasif'),
)child farklı widget'lar olabilir
child genellikle bir Text widget'ıdır, ama başka widget'lar da verebilirsin. Örneğin bir Row içine ikon ve metin koyarak ikonlu buton yapabilirsin. child butonun boyutunu ve içeriğini belirler.
ElevatedButton(
onPressed: () {},
child: Row(
mainAxisSize: MainAxisSize.min,
children: [Icon(Icons.save), Text('Kaydet')],
),
)Uygulama ElevatedButton ile iptal butonu yap
iptal adında bir fonksiyon yaz; çağrılınca Iptal yazdırsın. main içinde iptal'i çağır. Bir ElevatedButton ekle; onPressed'i iptal'e, child'ı Text('Iptal') olarak bağla.
Başlangıç kodu
import 'package:flutter/material.dart';
// iptal fonksiyonu yaz: "Iptal" yazdirsin
void main() {
// iptal'i cagir
runApp(const Uygulama());
}
class Uygulama extends StatelessWidget {
const Uygulama({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
// ElevatedButton ekle: onPressed ve child ver
child: SizedBox(),
),
),
);
}
}Örnek çözüm
import 'package:flutter/material.dart';
void iptal() {
print('Iptal');
}
void main() {
iptal();
runApp(const Uygulama());
}
class Uygulama extends StatelessWidget {
const Uygulama({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: ElevatedButton(
onPressed: iptal,
child: Text('Iptal'),
),
),
),
);
}
}Beklenen çıktı
Iptal
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 onPressed parametresine null verilirse ne olur?
- Buton devre dışı kalır ve basılamaz Doğru cevap
- onPressed otomatik olarak boş bir fonksiyon atanır
- Uygulama çöker
- child silinir
Açıklama: onPressed null ise ElevatedButton devre dışı kalır; gri görünür ve basıldığında hiçbir callback çağrılmaz.
2 child parametresini ekle
ElevatedButton(
onPressed: () {},
____: Text('Tamam'),
)
ElevatedButton(
onPressed: () {},
child: Text('Tamam'),
)
Açıklama: ElevatedButton içeriğini child parametresi belirler; children, title veya subtitle geçerli parametreler değildir.
3 onPressed ve child
| Kavram | Anlamı |
|---|---|
onPressed |
Basınca çağrılan callback |
child |
Buton içinde gösterilen widget |
null |
Butonu devre dışı bırakır |
Text |
child için yaygın seçim |