martes, 24 de agosto de 2021

Listas en Flutter (Listas estaticas, Listas dinamicas)

 Listas estáticas en flutter

Vamos a ver como se usan la listas en Flutter: crear , llenar, mostrar.....

El ejemplo a desarrollar es una lista sencilla de contactos basada en una lista estática 

Código

Se definen las listas estáticas:''colores" y "nombres"la de colores simplemente para darle algún efecto visual al ejemplo y la lista de  nombres de los contactos: 

class AvatarPage extends StatelessWidget {
@override
List colores=[Colors.deepOrange[200],Colors.greenAccent[200],Colors.purpleAccent[200]];
final List<String> nombres= ['Dios Mio', 'Jesucristo', 'Espíritu Santo','Lili','Hector mi kukito'];

El juego comienza en el body; donde se crea un Widget ListView que llama a un método
_crearLista que crea los items,en particular me gusta dividir el código para poder entender
el arbor de Widget,
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Avatar page',),
actions: [
],
centerTitle: true,
),
//ejemplo lista de contactos
body: Container(
//color: Colors.greenAccent[200],
padding: EdgeInsets.all(10.0),
child: ListView(
children: _crearLista(),
),
) ,
);
}

Llenar la lista : consiste en iterar la lista estática nombres que tenemos y por cada nombre crear
un container que contendrá un item de la lista. el método _ItemLista se le pasa por parámetro
un nombre y un color, este container sera agregado a una lista de widget.
//Creando la lista estatica de Widget
List<Widget> _crearLista(){
int _i=0;
List<Widget> listaContactos=[];
for (var item in nombres) {
final widgetTemp=Container(
decoration: _estiloListTile(),
padding: EdgeInsets.all(0.0) ,
child: _itemLista(item,_i),
);
listaContactos.add(widgetTemp);
_i++;
if(_i>2){
_i=0;
}
}
return listaContactos;
}

Este segmento del código crea un ListTile , que continenel circulo de color
que se llama
leading y el nombre del contacto.
//creando un item de la lista
ListTile _itemLista(String nombreContacto, int index){
return ListTile(
title: Text(nombreContacto),//aqui voy a poner los nombre
leading:CircleAvatar(
child:Icon(
Icons.accessibility,
color: Colors.white,
), ///aqui tienes que poner las fotos
backgroundColor: colores[index],
),
enabled: true,
onTap: (){
print('estoy haciendo click');
},
);
}
el código siguiente es para darle algo de estilo a los items de la lista.
BoxDecoration _estiloListTile(){
return BoxDecoration(
color: Colors.grey[100],
border: Border(
bottom: BorderSide(width: 1.0, color: Colors.grey.shade300,)
)
);
}


domingo, 22 de agosto de 2021

Bordes Container Flutter

 Para crear los bordes se usa el widget Container  que tiene la propiedad: decoration, que permite darle: ancho, color, imágenes a nuestros bordes, vamos con los ejemplos y sus codigos:

1) Bordes sencillos

child: Container(
height: 100,
width: 100,
decoration: BoxDecoration(border: Border.all( color: Colors.blue, width: 1.5),),
child: Text('Bordes En flutter', textAlign: TextAlign.center,),
)

2) Bordes Redondeados
Hay un atributo llamado borderRadius...
child: Container(
height: 100,
width: 100,
decoration: BoxDecoration(border: Border.all( color: Colors.blue, width: 3),
borderRadius: BorderRadius.circular(50)
),
child: Text('Bordes \n En flutter', textAlign: TextAlign.center,),
)
),
)


3)Bordes de un solo lado
cuando quieres pintar uno solo de los bordes usas BorderSide...
dependiendo del lado usas cada uno de estos:
*top:arriba
*bottom:abajo
*right:derecha
*left:izquierda




Container(
decoration: BoxDecoration(
border:Border(
bottom:BorderSide(
width: 1.0, color: Colors.black
)
),
),
title: Text('text'),
),

Slider