Creador de formularis senzill per a Flutter Framework

Bloc

Creador de formularis senzill per a Flutter Framework

Flutter FormBuilder - flutter_form_builder

Aquest paquet ajuda a la creació de formularis de recollida de dades a Flutter eliminant el boilerplate necessari per crear un formulari, validar camps, reaccionar als canvis i recopilar l'entrada final de l'usuari.

Ús senzill

Per utilitzar aquest connector, afegiu flutter_form_builder com a dependència al vostre fitxer pubspec.yaml .

Guia de la versió de Flutter

  • Flutter 1.20 => v4.*
  • Flutter 2.* sense seguretat nul·la => v5.*
  • Flutter 2.* null-safety => v6.* - algunes dependències (i, per tant, camps)* es van eliminar per aconseguir una seguretat nul·la

Nou vídeo tutorial

Vídeo tutorial de Youtube
Consulteu el vídeo tutorial de SyntacOps a Youtube

Exemple

|_+_|

l10n

Només cal que afegiu el FormBuilderLocalizations.delegate a la llista de localisationsDelegates de la vostra aplicació

|_+_|

Ginys d'entrada

Els camps admesos actualment inclouen:

  • FormBuilderCheckbox - Camp de casella de verificació única
  • FormBuilderCheckboxGroup - Llista de caselles de selecció per a una selecció múltiple
  • FormBuilderChoiceChip: crea un xip que actua com un botó d'opció.
  • FormBuilderDateRangePicker: per seleccionar un rang de dates
  • FormBuilderDateTimePicker: per a l'entrada de Data, Hora i DateTime
  • FormBuilderDropdown: s'utilitza per seleccionar un valor d'una llista com a menú desplegable
  • FormBuilderFilterChip: crea un xip que actua com una casella de selecció.
  • FormBuilderRadioGroup: s'utilitza per seleccionar un valor d'una llista de widgets de ràdio
  • FormBuilderRangeSlider: s'utilitza per seleccionar un interval d'un rang de valors
  • FormBuilderSegmentedControl: per seleccionar un valor del CupertinoSegmentedControl com a entrada
  • FormBuilderSlider: per seleccionar un valor numèric en un control lliscant
  • FormBuilderSwitch: camp d'interruptor d'encesa/apagada
  • FormBuilderTextField: entrada de camp de text de Material Design.

Per crear un camp d'entrada al formulari, juntament amb l'etiqueta i qualsevol validació aplicable, hi ha diversos atributs que són compatibles amb tot tipus d'entrada, a saber:

preu del token d'intercanvi de coco

Camps d'entrada addicionals

Per fer que aquest paquet sigui compartible amb tantes plataformes com Flutter admet, hem separat alguns camps d'entrada en els seus propis paquets perquè depenen de connectors específics de la plataforma. Aquí teniu els enllaços a alguns dels paquets que es podrien utilitzar amb FormBuilder

Construeix el teu propi camp personalitzat

Per crear el vostre propi camp dins d'un FormBuilder, utilitzem FormBuilderField, que requerirà que definiu el vostre propi camp.

|_+_||_+_|

Canvi del valor del camp programadament

Podeu canviar el valor d'un camp alhora de la següent manera:

|_+_|

O diversos camps valoren així:

|_+_|

Validació

L'atribut validador dels camps inclou un FormFieldValidator que verifica la validesa del camp. Un FormFieldValidator retorna null si la validació té èxit i una cadena per a errorText si la validació falla.

Validadors integrats

Aquest paquet inclou diversos FormFieldValidators més comuns, com ara obligatori, numèric, correu, URL, min, max, minLength, maxLength, IP, targeta de crèdit, etc. amb errorText predeterminat.

Els validadors integrats disponibles inclouen:

  • FormBuilderValidators.creditCard() - requereix que el valor del camp sigui un número de targeta de crèdit vàlid.
  • FormBuilderValidators.date() - requereix que el valor del camp sigui una cadena de data vàlida.
  • FormBuilderValidators.email() - requereix que el valor del camp sigui una adreça de correu electrònic vàlida.
  • FormBuilderValidators.equal() - requereix que el valor del camp sigui igual a l'objecte proporcionat.
  • FormBuilderValidators.integer() - requereix que el valor del camp sigui un nombre enter.
  • FormBuilderValidators.ip() - requereix que el valor del camp sigui una adreça IP vàlida.
  • FormBuilderValidators.match() - requereix que el valor del camp coincideixi amb el patró d'expressió regular proporcionat.
  • FormBuilderValidators.max() - requereix que el valor del camp sigui inferior o igual al nombre proporcionat.
  • FormBuilderValidators.maxLength() - requereix que la longitud del valor del camp sigui inferior o igual a la longitud màxima proporcionada.
  • FormBuilderValidators.min() - requereix que el valor del camp sigui superior o igual al nombre proporcionat.
  • FormBuilderValidators.minLength() - requereix que la longitud del valor del camp sigui superior o igual a la longitud mínima proporcionada.
  • FormBuilderValidators.numeric() - requereix que el valor del camp sigui un número vàlid.
  • FormBuilderValidators.required() - requereix que el camp tingui un valor no buit.
  • FormBuilderValidators.url() - requereix que el valor del camp sigui un URL vàlid.

Ús de múltiples validadors

La classe FormBuilderValidators ve amb una funció estàtica molt útil anomenada compose() que pren qualsevol nombre de funcions FormFieldValidator. Durant la validació, s'executa cada validador i, si algun retorna un valor no nul (és a dir, una cadena), la validació falla i el text d'error del camp es defineix com a cadena retornada.

Exemple de validació:

|_+_|

Induir un error programadament

Opció 1: ús de la clau FormBuilder / FieldBuilderField

|_+_|

Opció 2: utilitzant InputDecoration.errorText

Declara una variable per contenir el teu error:

|_+_|

Utilitzeu la variable com a text d'error a InputDecoration

|_+_|

Estableix el text d'error

|_+_|

Validació condicional

També podeu validar un camp en funció del valor d'un altre camp

|_+_|

SUPORT

Problemes i PR

Qualsevol tipus de suport en forma d'informes d'errors, resposta a preguntes o PR sempre s'agraeix.

Agraïm especialment els esforços per internacionalitzar/localitzar el paquet mitjançant la traducció de les cadenes de text error de validació per defecte.

Localització de missatges

Amb el directori arrel de l'aplicació com a directori actual, genereu l10n/intl_messages.arb des de lib/localization/form_builder_localizations.dart:

flutter pub pub run intl_translation:extract_to_arb --output-dir=lib/l10n lib/localization/form_builder_localizations.dart

El fitxer intl_messages.arb és un mapa de format JSON amb una entrada per a cada funció Intl.message() definida a lib/localization/form_builder_localizations.dart. Aquest fitxer serveix de plantilla per a les diferents traduccions (per exemple intl_en.arb i intl_es.arb són traduccions a l'anglès i al castellà respectivament). Per tant, heu de copiar el fitxer intl_messages.arb i posar el contingut en un fitxer nou amb el nom de la vostra configuració regional amb un nom amb format intl_.arb (per exemple, intl_fr.arb per a traduccions al francès).

Tradueix els missatges del fitxer nou a l'idioma requerit.

tensorflow amb amd gpu

Amb el directori arrel de l'aplicació com a directori actual, genereu intl_messages_.dart per al vostre fitxer intl_.arb i actualitzeu intl_messages_all.dart, que importa tots els fitxers de missatges:

flutter pub run intl_translation:generate_from_arb --output-dir=lib/l10n --no-use-deferred-loading lib/localization/form_builder_localizations.dart lib/l10n/intl_.arb lib/l10n/intl_messages.arb

per exemple. Per generar per a l'execució francesa: flutter pub run intl_translation:generate_from_arb --output-dir=lib/l10n --no-use-deferred-loading lib/localization/form_builder_localizations.dart lib/l10n/intl_fr.arb lib/l10n/intl_messages. arb

com comprar safemoon a kucoin
  • Alternativament, podeu executar l'ordre següent per generar fitxers de traducció de Dart per a tots els fitxers intl_.arb del directori l10n/:

flutter pub pub run intl_translation:generate_from_arb --output-dir=lib/l10n --no-use-deferred-loading lib/localization/form_builder_localizations.dart lib/l10n/intl_*.arb

  1. Incloeu el vostre nou idioma als idiomes compatibles amb FormBuilderLocalization. Aneu a lib/localization/form_builder_localizations.dart i incloeu l'idioma així:
|_+_|
  1. Envieu el vostre PR i ajudeu milions de persones a tot el món!

Utilitzeu aquest paquet com a biblioteca

Depenen d'això

Executeu aquesta comanda:

Amb Flutter:

|_+_|

Això afegirà una línia com aquesta al pubspec.yaml del vostre paquet (i executarà un flutter pub get implícit):

|_+_|

Alternativament, el vostre editor podria donar suport o flutter pub get. Consulteu els documents del vostre editor per obtenir més informació.

Importa'l

Ara, al vostre codi de Dart, podeu utilitzar:

|_+_|

exemple/lib/main.dart

|_+_|

Descarregar detalls:

Autor: danvick

Codi font: https://github.com/danvick/flutter_form_builder