İstifadəçi girişi və formalar
İstifadəçi girişinin iki qatı var:
- Jestlər —
GestureDetector(tap, drag, long press) vəInkWell(eyni + Material ripple effekti). Düymələr üçün hazır widget varsa, onu istifadə et;GestureDetectorxüsusi hallar üçündür. - Mətn girişi —
TextFieldsərbəst istifadə üçün,TextFormFieldisəFormdaxilində validasiya ilə.
Form + GlobalKey<FormState> kombinasiyası standart pattern-dir: _formKey.currentState!.validate() bütün sahələrin validator funksiyalarını işə salır və nəticəni bool kimi qaytarır.
Mətn sahəsinin dəyərini oxumağın iki yolu var və seçim vacibdir:
- `TextEditingController` — dəyəri istənilən anda oxumaq/dəyişmək lazımdırsa.
State-də yaradılır vədispose()-da bağlanır - `onChanged` / `onSaved` — sadəcə dəyəri toplamaq kifayətdirsə; controller-siz daha yüngüldür
autovalidateMode validasiyanın nə vaxt işə düşəcəyini təyin edir. AutovalidateMode.onUserInteraction adətən ən yaxşı UX-dir: istifadəçi hələ heç nə yazmamış xəta göstərmir, amma yazmağa başlayandan sonra dərhal geri bildirim verir.
Interview ipucu. Forma sualında UX detalları səni ayırır: klaviatura açılanda məzmunun görünməsi (Scaffold bunu özü edir, amma SingleChildScrollView lazım ola bilər), textInputAction ilə "Next/Done" düymələri, keyboardType ilə düzgün klaviatura, və göndərmə zamanı düymənin bloklanması ki, ikiqat submit olmasın. Bunlar real cihazda dərhal hiss olunan şeylərdir.
📚 Mənbələr və sənədlər
- İnteraktivlik əlavə etməkrəsmidocs.flutter.dev
- Formaları validasiya etməkrəsmidocs.flutter.dev
- Form classrəsmiapi.flutter.dev
- TextEditingControllerrəsmiapi.flutter.dev