Saltar al contenido

Cambiar el color de fondo de ListTile al seleccionar en Flutter

Te traemos el hallazgo a esta interrogante, o por lo menos eso creemos. Si presentas dudas puedes dejarlo en el apartado de preguntas, que para nosotros será un gusto ayudarte

Solución:

Pude cambiar el color de fondo de ListTile usando un CajaDecoración en el interior Envase:

ListView (
    children: [
        new Container (
            decoration: new BoxDecoration (
                color: Colors.red
            ),
            child: new ListTile (
                leading: const Icon(Icons.euro_symbol),
                title: Text('250,00')
            )
        )
    ]
)

Si también necesitas un onTap oyente con un efecto dominó, puede utilizar Ink:

ListView(
  children: [
    Ink(
      color: Colors.lightGreen,
      child: ListTile(
        title: Text('With lightGreen background'),
        onTap()  ,
      ),
    ),
  ],
);

efecto dominó

Captura de pantalla:

ingrese la descripción de la imagen aquí


Solución:

// you can do that by using `Map` but for simplicity I used 2 separate `List`. 
List _list = List.generate(20, (i) => i);
List _selected = List.generate(20, (i) => false); // initially fill it up with false

Widget build(BuildContext context) 
  return Scaffold(
    appBar: AppBar(),
    body: ListView.builder(
      itemBuilder: (_, i) 
        return Container(
          margin: const EdgeInsets.symmetric(vertical: 2),
          color: _selected[i] ? Colors.blue : null, // if current item is selected show blue color
          child: ListTile(
            title: Text("Item $_list[i]"),
            onTap: () => setState(() => _selected[i] = !_selected[i]), // reverse bool value
          ),
        );
      ,
    ),
  );

Si te sientes impulsado, puedes dejar una reseña acerca de qué le añadirías a este tutorial.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *