Sobes.tech
Junior

Kokie yra būdai įvesti tekstą programėlėje?

sobes.tech AI

Atsakymas iš AI

Yra keletas pagrindinių būdų įvesti tekstą Flutter:

  1. TextField valdiklis:

    • Standartinis vieno teksto įvedimo valdiklis.
    • Leidžia pritaikyti išvaizdą, elgseną, klaviatūrą, validaciją ir kontrolę.
    • Tinka vardų, el. pašto, slaptažodžio ir kt. laukams.
    // Pavyzdys naudojant TextField
    TextField(
      decoration: InputDecoration(
        labelText: 'Vardas',
        border: OutlineInputBorder(),
      ),
      onChanged: (text) {
        // Teksto keitimo apdorojimas
      },
    )
    
  2. TextFormField valdiklis:

    • TextField apvalkalas, integruotas su Form.
    • Supaprastina įvesties validaciją ir formos duomenų išsaugojimą.
    • Dažnai naudojamas formose vartotojo duomenims rinkti.
    // Pavyzdys naudojant TextFormField
    TextFormField(
      decoration: InputDecoration(
        labelText: 'El. paštas',
      ),
      validator: (value) {
        if (value == null || value.isEmpty) {
          return 'Prašome įvesti el. paštą';
        }
        return null; // Validacija sėkminga
      },
      onSaved: (value) {
        // Reikšmės išsaugojimas po validacijos
      },
    )
    
  3. EditableText valdiklis:

    • Žemyn lygio valdiklis redaguojamam tekstui.
    • Suteikia pagrindines redagavimo galimybes, bet neturi iš anksto sukonfigūruotos išvaizdos.
    • Naudojamas kuriant kustominius įvesties laukus, pvz., tekstų redaktoriuose.
    // Pavyzdys naudojant EditableText (reikalauja daugiau rankinio nustatymo)
    EditableText(
      controller: TextEditingController(), // Teksto valdymo kontroleris
      focusNode: FocusNode(), // Fokusavimo mazgas
      style: TextStyle(color: Colors.black), // Teksto stilius
      cursorColor: Colors.blue, // Žymeklio spalva
      backgroundCursorColor: Colors.grey, // Žymeklio fono spalva
    )
    
  4. Sistema klaviatūra:

    • Flutter automatiškai valdo sistemos klaviatūros rodymą, kai fokusas yra įvedimo valdikliuose.
    • Klaviatūros tipas (skaitmeninis, raidinis, el. paštas ir kt.) gali būti nustatytas naudojant keyboardType savybę TextField arba TextFormField.
    // Skaitmeninės klaviatūros nustatymas
    TextField(
      keyboardType: TextInputType.number,
    )
    
  5. Kustominė klaviatūra:

    • Galima sukurti savo klaviatūrą, kuriame naudoti mygtukus ir apdoroti jų paspaudimus, keisti tekstą valdiklio kontroleryje.
    • Naudojama specialiais atvejais, pvz., bankų programose su unikaliu išdėstymu.
  6. Teksto įterpimas iš mainų buferio:

    • TextField ir TextFormField pagal numatytuosius nustatymus palaiko teksto įterpimą iš mainų buferio per kontekstinį meniu.
    • Programinė prieiga prie buferio atliekama per Clipboard klasę.
    import 'package:flutter/services.dart';
    
    // Teksto gavimas iš buferio
    Future<void> pasteText() async {
      ClipboardData? data = await Clipboard.getData(Clipboard.kTextPlain);
      if (data != null) {
        String? text = data.text;
        // Naudoti gautą tekstą
      }
    }
    

Priklausomai nuo užduoties ir UI reikalavimų, pasirenkamas tinkamiausias būdas įvesti tekstą. Dauguma standartinių scenarijų yra pakankami naudojant TextField ir TextFormField.