Saltar al contenido

Flutter: especificar la altura de ListTile

No busques más en otras páginas porque has llegado al sitio correcto, contamos con la respuesta que quieres encontrar pero sin liarte.

Solución:

Solo quita el Expanded Widget para evitar llenar el espacio disponible y usar un Contenedor padre con una altura fija, igual que el itemExtent valor:

    Column(
                  children: [
                    Container(
                      height: 100.0,
                      child: ListView.builder(
                          scrollDirection: Axis.horizontal,
                          itemExtent: 100.0,
                          itemCount: temp.length,
                          itemBuilder: (BuildContext context, int index) 
                            return ListTile(
                                title: Text(temp[index]),
                                onTap: () 
                                  print(temp[index]);
                                );
                          ),
                    ),
                    Container(
                      child: Text('data'),
                    )
                  ],
                ),

agrega este itemExtent en tus ListView Propiedades, itemExtent define el tamaño de cada niño. así ⬇️

 ListView.builder(
  scrollDirection: Axis.vertical,
  shrinkWrap: true,
  itemCount: 5,
  itemExtent: 50,
  itemBuilder: (context, index)  
    return TistTile()
  
 )

Y la implementación de este dense:trueen tus ListTile Propiedades, Las dense El parámetro hace que el texto sea más pequeño y empaqueta todo junto. así ⬇️

  ListTile(
   title: Text("Tony Stark"),
   subtitle: Text("list[index].name",
        style: TextStyle(fontSize: 14.0),),
   contentPadding: EdgeInsets.symmetric(vertical: 0.0, horizontal: 
        16.0),
   dense:true,
   );

Puede cambiar la cantidad de contenido que se inserta a la izquierda y a la derecha (pero no en la parte superior o inferior) configurando el contentPadding. El valor predeterminado es 16.0 pero aquí nos pondremos a 0.0:

Debe usar un Contenedor o Padding en lugar de ListTile si necesita más personalización.

No puede establecer la altura, pero puede reducirla configurando el denso propiedad a true:

ListView.builder(
          scrollDirection: Axis.vertical,
          shrinkWrap: true,
          itemCount: list.length,
          itemBuilder: (context, index) 
            return ListTile(
              title: Text(list[index].name,style: TextStyle(fontSize: 20.0),),
              contentPadding: EdgeInsets.symmetric(vertical: 0.0, horizontal: 16.0),
              dense:true,                  
            );
          ,
        );

ListTile:

Una única fila de altura fija que normalmente contiene algo de texto, así como un icono inicial o final.

Para ser accesibles, los widgets iniciales y finales que se pueden tocar deben tener un tamaño mínimo de 48×48. Sin embargo, para adherirse a la especificación Material, los widgets finales y principales en ListTiles de una línea deben ser visualmente como máximo 32 (densos: true) o 40 (denso: false) de altura, lo que puede entrar en conflicto con el requisito de accesibilidad.

Por esta razón, un ListTile de una línea permite que la altura de los widgets iniciales y finales se restrinja por la altura del ListTile. Esto permite la creación de widgets iniciales y finales que se pueden tocar y que son lo suficientemente grandes, pero depende del desarrollador asegurarse de que sus widgets sigan las especificaciones del material.

https://api.flutter.dev/flutter/material/ListTile-class.html

No se te olvide comunicar este post si lograste el éxito.

¡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 *