Diferencia entre revisiones de «Flutter StatefulWidget. Conceptos»
Ir a la navegación
Ir a la búsqueda
| Línea 1: | Línea 1: | ||
==Introducción== | ==Introducción== | ||
| + | |||
| + | * Más información en: | ||
| + | :* https://flutter.dev/docs/development/ui/interactive | ||
| + | :* https://api.flutter.dev/flutter/widgets/StatefulWidget-class.html | ||
| + | |||
| + | |||
* Hasta ahora hemos usado los StatelessWidget para todo. | * Hasta ahora hemos usado los StatelessWidget para todo. | ||
: Este tipo de Widget: | : Este tipo de Widget: | ||
| − | :* No | + | :* No permite guardar ningún tipo de dato en forma de variable y cuando definimos algo a nivel de clase siempre debe estar asociado al modificador '''final''' o '''static const'''. |
| − | :: | + | :: Si no se pone dicho modificador, no impide compilar la aplicación y aparecerá un Warning en la definición de la Clase (el nombre de la clase aparecerá subrayada). |
| − | :* No se pueden 'redibujar' para hacer que reflejen un cambio que pueda darse por programación. Imagináos el caso de que busquéis datos por Internet y se carguen nuevos datos en la lista en la que se | + | :: Un ejemplo de uso sería cuando tenemos un formulario y queremos guardar lo escrito por el usuario en una variable. Esto no lo podríamos realizar con este tipo de Widget. |
| + | :* No se pueden 'redibujar' para hacer que reflejen un cambio que pueda darse por programación. Imagináos el caso de que busquéis datos por Internet y se carguen nuevos datos en la lista en la que se basa un ListView para visualizar el contenido... | ||
| Línea 15: | Línea 22: | ||
<br /> | <br /> | ||
| − | + | '''Código explicativo del vídeo'''. | |
:<syntaxhighlight lang="java" enclose="div" highlight="31,37" > | :<syntaxhighlight lang="java" enclose="div" highlight="31,37" > | ||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||
| Línea 83: | Línea 90: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| + | |||
| + | <br /> | ||
| + | ==Ejemplo contador== | ||
| + | |||
| + | * Podemos analizar ahora el ejemplo 'Hola Mundo' que aparece cuando se instala Flutter y que podemos visualizar en la [https://dartpad.dev/?null_safety=true&id=1a28bdd9203250d3226cc25d512579ec página dartpad.dev] | ||
Revisión del 20:02 19 ago 2021
Introducción
- Más información en:
- Hasta ahora hemos usado los StatelessWidget para todo.
- Este tipo de Widget:
- No permite guardar ningún tipo de dato en forma de variable y cuando definimos algo a nivel de clase siempre debe estar asociado al modificador final o static const.
- Si no se pone dicho modificador, no impide compilar la aplicación y aparecerá un Warning en la definición de la Clase (el nombre de la clase aparecerá subrayada).
- Un ejemplo de uso sería cuando tenemos un formulario y queremos guardar lo escrito por el usuario en una variable. Esto no lo podríamos realizar con este tipo de Widget.
- No se pueden 'redibujar' para hacer que reflejen un cambio que pueda darse por programación. Imagináos el caso de que busquéis datos por Internet y se carguen nuevos datos en la lista en la que se basa un ListView para visualizar el contenido...
Código explicativo del vídeo.
import 'package:flutter/material.dart'; class EjemploStateLess extends StatelessWidget { int _valor = 0; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('StateLessWidget'), ), body: _boton() ); } Widget _boton(){ return Center(child: TextButton(child:Text('Presiona $_valor'), onPressed: (){ print('pulsado $_valor'); _valor = _valor + 1 ; }, style: TextButton.styleFrom(backgroundColor: Colors.amber), ) ); } } class EjemploStateful extends StatefulWidget { @override _EjemploStatefulState createState() => _EjemploStatefulState(); } class _EjemploStatefulState extends State<EjemploStateful> { int _valor = 10; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('appbarTitle'), ), body: _boton() ); } Widget _boton(){ return Center(child: TextButton(child:Text('Presiona valores $_valor'), onPressed: (){ print('pulsado $_valor'); setState(() { _valor++; }); }, style: TextButton.styleFrom(backgroundColor: Colors.amber), ) ); } }
Ejemplo contador
- Podemos analizar ahora el ejemplo 'Hola Mundo' que aparece cuando se instala Flutter y que podemos visualizar en la página dartpad.dev
Enlace a la página principal de la UD4
Enlace a la página principal del curso
-- Ángel D. Fernández González -- (2021).