TextEditingController
- Flutter kursu
- Başlangıç
- Ders 67/99
- 4 dk
TextEditingController ile girdiyi denetlemeyi öğrenirsin.
TextEditingController nedir?
TextEditingController, bir TextFormField'ın içindeki metni dışarıdan okumanı ve değiştirmeni sağlayan denetleyicidir. Controller'ı oluşturup TextFormField'ın controller parametresine verirsin. Daha sonra controller.text ile içindeki metne erişebilirsin.
final controller = TextEditingController();
TextFormField(
controller: controller,
)dispose metodu
Bir controller, artık kullanılmadığında dispose edilmelidir; bu, bellek sızıntısını önler. Stateful widget'larda bu genellikle State'in dispose metodunda yapılır: controller.dispose() çağrısıyla controller temizlenir.
Uygulama Controller ile metni yazdır
main içinde bir TextEditingController oluştur; text değerini 'Merhaba' yap. controller.text değerini print ile yazdır. TextFormField'a controller olarak bağla.
Başlangıç kodu
import 'package:flutter/material.dart';
// Burada TextEditingController olustur, text degerini 'Merhaba' yap
void main() {
// print ile controller.text yazdir
runApp(const Uygulama());
}
class Uygulama extends StatelessWidget {
const Uygulama({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: TextFormField(
// controller parametresini ekle
),
),
),
);
}
}Örnek çözüm
import 'package:flutter/material.dart';
final controller = TextEditingController(text: 'Merhaba');
void main() {
print(controller.text);
runApp(const Uygulama());
}
class Uygulama extends StatelessWidget {
const Uygulama({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: TextFormField(
controller: controller,
),
),
),
);
}
}Beklenen çıktı
Merhaba
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir TextEditingController'ın tuttuğu metne nasıl erişilir?
- controller.string
- controller.value
- controller.input
- controller.text Doğru cevap
Açıklama: Controller'ın metnine .text özelliği ile erişilir; .value bir TextEditingValue döndürür, .input ve .string diye özellik yoktur.
2 controller parametresini ekle
TextFormField(
____: myController,
)
TextFormField(
controller: myController,
)
Açıklama: TextFormField'a controller bağlamak için controller parametresi kullanılır; text, value veya content parametreleri yoktur.
3 Controller parçaları
| Kavram | Anlamı |
|---|---|
TextEditingController |
Metni denetleyen sınıf |
controller |
TextFormField'a bağlanan parametre |
text |
Controller'daki metin özelliği |
dispose |
Controller'ı temizleme metodu |