Sobes.tech
Junior

Millised on tekstisisestamise viisid rakenduses?

sobes.tech AI

Vastus AI-lt

Flutteris on mitu peamist viisi teksti sisestada:

  1. **TextField vidin: **

    • Standartne vidin ühe rea teksti sisestamiseks.
    • Võimaldab kohandada välimust, käitumist, klaviatuuri, valideerimist ja kontrollerit.
    • Sobib nime, e-posti, parooli ja muude väljade jaoks.
    // Näide TextField kasutamisest
    TextField(
      decoration: InputDecoration(
        labelText: 'Nimi',
        border: OutlineInputBorder(),
      ),
      onChanged: (text) {
        // Teksti muutmise töötlemine
      },
    )
    
  2. TextFormField vidin:

    • TextField kate, mis on integreeritud Form-iga.
    • Lihtsustab sisendi valideerimist ja vormi andmete salvestamist.
    • Kasutatakse sageli vormides kasutaja andmete kogumiseks.
    // Näide TextFormField kasutamisest
    TextFormField(
      decoration: InputDecoration(
        labelText: 'E-post',
      ),
      validator: (value) {
        if (value == null || value.isEmpty) {
          return 'Palun sisestage e-post';
        }
        return null; // Valideerimine õnnestus
      },
      onSaved: (value) {
        // Väärtuse salvestamine valideerimise järel
      },
    )
    
  3. EditableText vidin:

    • Madala taseme vidin redigeeritava teksti jaoks.
    • Pakub põhivõimalusi redigeerimiseks, kuid ei oma valmis kujundust.
    • Kasutatakse kohandatud sisestusväljade loomisel, näiteks tekstiredaktorites.
    // Näide EditableText kasutamisest (nõuab rohkem käsitsi seadistust)
    EditableText(
      controller: TextEditingController(), // Teksti kontroller
      focusNode: FocusNode(), // Fookusnode
      style: TextStyle(color: Colors.black), // Teksti stiil
      cursorColor: Colors.blue, // Kursorivärv
      backgroundCursorColor: Colors.grey, // Kursoritausta värv
    )
    
  4. Süsteemklaviatuur:

    • Flutter haldab automaatselt süsteemklaviatuuri kuvamist, kui fookus on sisestusvidinil.
    • Klaviatuuri tüüp (arvuline, tähemärkide, e-posti jms) saab määrata keyboardType omadusega TextField või TextFormField-is.
    // Arvutüüpi klaviatuuri seadistamine
    TextField(
      keyboardType: TextInputType.number,
    )
    
  5. Kohandatud klaviatuur:

    • Võimalik luua oma klaviatuur, tehes nuppude vidinaid ja töötades nende vajutustega, et muuta teksti sisestuskontrolleris.
    • Seda lähenemist kasutatakse erijuhtudel, näiteks pankade rakendustes unikaalse paigutusega.
  6. Teksti sisestamine lõikelaualt:

    • TextField ja TextFormField toetavad vaikimisi teksti sisestamist lõikelaualt kontekstimenüü kaudu.
    • Programmaatiline juurdepääs lõikelauale toimub Clipboard klassi kaudu.
    import 'package:flutter/services.dart';
    
    // Teksti saamine lõikelaualt
    Future<void> pasteText() async {
      ClipboardData? data = await Clipboard.getData(Clipboard.kTextPlain);
      if (data != null) {
        String? text = data.text;
        // Kasutada saadud teksti
      }
    }
    

Sõltuvalt ülesandest ja UI nõuetest valitakse sobiv tekstisisestusviis. Enamikul juhtudel piisab TextField ja TextFormField kasutamisest.