CodeBlanks Logo Icon CodeBlanks

TextEditingController

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

main.dart
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

main.dart
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

Soru
TextFormField(
  ____: myController,
)
Cevap
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

Başlangıç bölümündeki tüm dersler