diegoRodicio

Está documentación está a túa disposición sin ningún custo económico. Sen embargo, para a súa elaboración dedico moito tempo e recursos, polo que agradecería unha colaboración co que consideres oportuno. Gracias.

View Categories

⌨️ Inputs de Usuario e Formularios

A interacción co usuario é clave en calquera aplicación, e Flutter proporciona widgets potentes para recoller datos. Aquí veremos widgets para capturar datos do usuario, como campos de texto, caixas de verificación e formularios completos con validación.

✍️ TextField e TextEditingController #

O TextField é o widget básico para recoller entrada de texto dunha soa liña. Permítelle aos usuarios escribir texto, números, correos electrónicos, etc. Para xestionar o texto que se escribe e modificalo, usamos un TextEditingController.

🧪 Exemplo básico: #

class EntradaTexto extends StatefulWidget {
  @override
  State<EntradaTexto> createState() => _EntradaTextoState();
}

class _EntradaTextoState extends State<EntradaTexto> {
  final controladorNome = TextEditingController();

  @override
  void dispose() {
    controladorNome.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext contexto) {
    return Column(
      children: [
        TextField(
          controller: controladorNome,
          decoration: InputDecoration(
            labelText: 'Escribe o teu nome',
            border: OutlineInputBorder(),
          ),
        ),
        ElevatedButton(
          onPressed: () {
            print('Nome introducido: ${controladorNome.text}');
          },
          child: Text('Gardar'),
        ),
      ],
    );
  }
}

🧪 Outro Exemplo: #

🔗 Ver o código en DartPad

Checkbox #

O widget Checkbox utilízase para activar ou desactivar unha opción (valor booleano). Os usuarios poden seleccionar varias caixas de verificación.

bool aceptado = false;

Checkbox(
  value: aceptado,
  onChanged: (novoValor) {
    setState(() {
      aceptado = novoValor!;
    });
  },
)

🧪 Exemplo: #

🔗 Ver o código en DartPad

🔘 RadioListTile #

Permite escoller unha única opción entre varias. Ideal cando se precisa unha resposta única.

String? linguaxeEscollida = 'Dart';

RadioListTile<String>(
  title: Text('Dart'),
  value: 'Dart',
  groupValue: linguaxeEscollida,
  onChanged: (valor) {
    setState(() {
      linguaxeEscollida = valor;
    });
  },
),
RadioListTile<String>(
  title: Text('Swift'),
  value: 'Swift',
  groupValue: linguaxeEscollida,
  onChanged: (valor) {
    setState(() {
      linguaxeEscollida = valor;
    });
  },
),

🧪 Exemplo: #

🔗 Ver o código en DartPad

🧪 Form e TextFormField con validación #

Para formularios máis complexos con múltiples campos e requisitos de validación, Flutter proporciona o widget Form. O Form actúa como un contedor para os seus campos de formulario, permitíndolle validar todos os campos á vez e gardar os seus valores.

Dentro dun Form, usaremos TextFormField en lugar de TextField. TextFormField é unha versión de TextField que se integra mellor co Form e permite a validación e xestión de estados de erro.

🔗 Ver o código en DartPad

🧪 Exemplo: #

🔗 Ver o código en DartPad

📚 Fontes de información #