Sobes.tech
Junior

Jaké jsou způsoby zadávání textu v aplikaci?

sobes.tech AI

Odpověď od AI

V Flutteru existuje několik základních způsobů zadávání textu:

  1. Widget TextField:

    • Výchozí widget pro jednořádkový vstup textu.
    • Umožňuje přizpůsobit vzhled, chování, klávesnici, validaci a ovladač.
    • Vhodné pro pole pro zadání jména, emailu, hesla atd.
    // Příklad použití TextField
    TextField(
      decoration: InputDecoration(
        labelText: 'Jméno',
        border: OutlineInputBorder(),
      ),
      onChanged: (text) {
        // Zpracování změny textu
      },
    )
    
  2. Widget TextFormField:

    • Obal nad TextField, integrovaný s Form.
    • Zjednodušuje validaci vstupu a ukládání dat formuláře.
    • Často se používá ve formulářích ke sběru uživatelských dat.
    // Příklad použití TextFormField
    TextFormField(
      decoration: InputDecoration(
        labelText: 'Email',
      ),
      validator: (value) {
        if (value == null || value.isEmpty) {
          return 'Prosím, zadejte email';
        }
        return null; // Vrací null, pokud validace proběhla úspěšně
      },
      onSaved: (value) {
        // Uložení hodnoty po validaci formuláře
      },
    )
    
  3. Widget EditableText:

    • Nízké úrovně widget pro upravitelný text.
    • Poskytuje základní možnosti úprav, ale nemá hotové rozhraní (dekorace).
    • Používá se pro tvorbu vlastních vstupních polí, například v textových editorech.
    // Příklad použití EditableText (vyžaduje více ručního nastavení)
    EditableText(
      controller: TextEditingController(), // Ovladač pro správu textu
      focusNode: FocusNode(), // Uzel fokusu
      style: TextStyle(color: Colors.black), // Styl textu
      cursorColor: Colors.blue, // Barva kurzoru
      backgroundCursorColor: Colors.grey, // Barva pozadí kurzoru
    )
    
  4. Systémová klávesnice:

    • Flutter automaticky spravuje zobrazení systémové klávesnice při zaměření na vstupní widgety.
    • Typ klávesnice (číselná, abecední, email atd.) lze nastavit pomocí vlastnosti keyboardType v TextField nebo TextFormField.
    // Nastavení číselné klávesnice
    TextField(
      keyboardType: TextInputType.number,
    )
    
  5. Vlastní klávesnice:

    • Lze implementovat vlastní klávesnici vytvořením widgetů tlačítek a jejich zpracováním při stisknutí pro změnu textu v ovladači vstupu.
    • Tento přístup se používá pro speciální případy, například bankovní aplikace s unikátním rozložením.
  6. Vkládání textu ze schránky:

    • Widgety TextField a TextFormField ve výchozím nastavení podporují vkládání textu ze schránky přes kontextové menu.
    • Programový přístup ke schránce je realizován přes třídu Clipboard.
    import 'package:flutter/services.dart';
    
    // Získání textu ze schránky
    Future<void> pasteText() async {
      ClipboardData? data = await Clipboard.getData(Clipboard.kTextPlain);
      if (data != null) {
        String? text = data.text;
        // Použití získaného textu
      }
    }
    

V závislosti na úkolu a požadavcích na UI si vyberete vhodný způsob zadávání textu. Pro většinu standardních scénářů postačí TextField a TextFormField.