Sobes.tech
Junior

Ilovada matn kiritishning qanday usullari mavjud?

sobes.tech AI

AIdan javob

Flutterda matn kiritishning bir nechta asosiy usullari mavjud:

  1. TextField vidjeti:

    • Bir satrli matn kiritish uchun standart vidjet.
    • Ko'rinishini, xulqini, klaviaturani, validatsiyani va nazoratchini sozlash imkonini beradi.
    • Ism, email, parol va boshqalar uchun kirish maydonlariga mos keladi.
    // TextFielddan foydalanish misoli
    TextField(
      decoration: InputDecoration(
        labelText: 'Ism',
        border: OutlineInputBorder(),
      ),
      onChanged: (text) {
        // Matn o'zgarishini ishlash
      },
    )
    
  2. TextFormField vidjeti:

    • TextFieldning Form bilan integratsiyalashgan qoplamasi.
    • Kiritishni validatsiya qilish va forma ma'lumotlarini saqlashni osonlashtiradi.
    • Foydalanuvchi ma'lumotlarini yig'ish uchun formalarda keng qo'llaniladi.
    // TextFormFielddan foydalanish misoli
    TextFormField(
      decoration: InputDecoration(
        labelText: 'Email',
      ),
      validator: (value) {
        if (value == null || value.isEmpty) {
          return 'Iltimos, Email kiriting';
        }
        return null; // Validatsiya muvaffaqiyatli o'tganda null qaytaradi
      },
      onSaved: (value) {
        // Validatsiyadan so'ng qiymatni saqlash
      },
    )
    
  3. EditableText vidjeti:

    • Pastki darajadagi matnni tahrirlash vidjeti.
    • Asosiy tahrirlash imkoniyatlarini taqdim etadi, ammo tayyor dizayni (dekorationlar) yo'q.
    • Matn muharrirlari kabi maxsus kirish maydonlarini yaratishda ishlatiladi.
    // EditableTextdan foydalanish misoli (ko'proq qo'lda sozlash talab etiladi)
    EditableText(
      controller: TextEditingController(), // Matnni boshqarish uchun nazoratchi
      focusNode: FocusNode(), // Fokus tuguni
      style: TextStyle(color: Colors.black), // Matn uslubi
      cursorColor: Colors.blue, // Kursor rangi
      backgroundCursorColor: Colors.grey, // Kursor fon rangi
    )
    
  4. Tizim klaviaturasi:

    • Flutter matn kirish vidjetlariga fokus bo'lganda tizim klaviaturasini avtomatik ravishda ko'rsatadi.
    • Klaviatura turi (sonli, alfavitli, email va boshqalar) TextField yoki TextFormFielddagi keyboardType xususiyati bilan sozlanishi mumkin.
    // Sonli klaviatura sozlamasi
    TextField(
      keyboardType: TextInputType.number,
    )
    
  5. Maxsus klaviatura:

    • O'z klaviaturangizni yaratish uchun tugmalar vidjetlarini yaratib, ularning bosishlarini ishlov berish orqali matnni kirish nazoratchisida o'zgartirish mumkin.
    • Bu yondashuv maxsus holatlar uchun, masalan, bank ilovalari uchun, noyob joylashuv bilan ishlatiladi.
  6. Clipboarddan matn joylash:

    • TextField va TextFormField vidjetlari odatda kontekst menyusi orqali clipboarddan matn joylashni qo'llab-quvvatlaydi.
    • Programmatik tarzda clipboardga kirish Clipboard sinfi orqali amalga oshiriladi.
    import 'package:flutter/services.dart';
    
    // Clipboarddan matn olish
    Future<void> pasteText() async {
      ClipboardData? data = await Clipboard.getData(Clipboard.kTextPlain);
      if (data != null) {
        String? text = data.text;
        // Olingan matndan foydalanish
      }
    }
    

Vazifa va UI talablariga qarab, mos matn kirish usuli tanlanadi. Ko'pchilik standart holatlar uchun TextField va TextFormField etarli.