Sobes.tech
Junior

Uygulamada metin girişinin hangi yolları vardır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Flutter'da metin girişinin birkaç temel yolu vardır:

  1. TextField Widget'ı:

    • Tek satırlık metin girişi için standart widget.
    • Görünüm, davranış, klavye, doğrulama ve denetleyiciyi özelleştirmeye olanak tanır.
    • İsim, e-posta, şifre gibi giriş alanları için uygundur.
    // TextField kullanım örneği
    TextField(
      decoration: InputDecoration(
        labelText: 'İsim',
        border: OutlineInputBorder(),
      ),
      onChanged: (text) {
        // Metin değişikliklerini işle
      },
    )
    
  2. TextFormField Widget'ı:

    • TextField'ın sarmalayıcısı ve Form ile entegre.
    • Giriş doğrulama ve form verilerinin kaydını kolaylaştırır.
    • Kullanıcı verilerini toplamak için formlarda sıkça kullanılır.
    // TextFormField kullanım örneği
    TextFormField(
      decoration: InputDecoration(
        labelText: 'E-posta',
      ),
      validator: (value) {
        if (value == null || value.isEmpty) {
          return 'Lütfen E-posta giriniz';
        }
        return null; // Doğrulama başarılıysa null döner
      },
      onSaved: (value) {
        // Doğrulama sonrası değeri kaydet
      },
    )
    
  3. EditableText Widget'ı:

    • Düşük seviyeli düzenlenebilir metin widget'ı.
    • Temel düzenleme özellikleri sağlar, ancak hazır bir tasarımı yoktur (dekorasyonlar).
    • Özelleştirilmiş giriş alanları oluşturmak için kullanılır, örneğin metin düzenleyicilerde.
    // EditableText kullanım örneği (daha fazla manuel yapılandırma gerektirir)
    EditableText(
      controller: TextEditingController(), // Metni yönetmek için denetleyici
      focusNode: FocusNode(), // Odak düğümü
      style: TextStyle(color: Colors.black), // Metin stili
      cursorColor: Colors.blue, // İmleç rengi
      backgroundCursorColor: Colors.grey, // İmleç arka plan rengi
    )
    
  4. Sistem klavyesi:

    • Flutter, metin giriş widget'larına odaklanıldığında sistem klavyesinin otomatik olarak gösterilmesini yönetir.
    • Klavye türü (sayısal, alfabetik, e-posta vb.) TextField veya TextFormField'deki keyboardType özelliğiyle ayarlanabilir.
    // Sayısal klavye ayarı
    TextField(
      keyboardType: TextInputType.number,
    )
    
  5. Özelleştirilmiş klavye:

    • Kendi klavyenizi, düğmeler oluşturarak ve bunların basılmasını işleyerek, giriş denetleyicisindeki metni değiştirecek şekilde uygulayabilirsiniz.
    • Bu yaklaşım, örneğin, benzersiz düzenlemeye sahip bankacılık uygulamaları gibi özel durumlar için kullanılır.
  6. Panodan metin yapıştırma:

    • TextField ve TextFormField widget'ları, varsayılan olarak bağlam menüsü aracılığıyla panodan metin yapıştırmayı destekler.
    • Programatik erişim, Clipboard sınıfı kullanılarak yapılır.
    import 'package:flutter/services.dart';
    
    // Panodan metin alma
    Future<void> pasteText() async {
      ClipboardData? data = await Clipboard.getData(Clipboard.kTextPlain);
      if (data != null) {
        String? text = data.text;
        // Alınan metni kullan
      }
    }
    

Görev ve UI gereksinimlerine göre uygun metin giriş yöntemi seçilir. Çoğu standart senaryo için TextField ve TextFormField yeterlidir.