¿Alguien puede explicarme cómo puedo crear un widget como creador de ListView con 2 líneas de elementos? Tengo un ejemplo de este tipo, puedes verlo en la siguiente imagen:
mira aquí stackoverflow.com/questions/51089041/…
- Jitesh Mohite
28/03/2021 a las 10:48
eso no es lo que necesito
- Pación
28/03/2021 a las 11:04
------------------------------------
Una opción es utilizar el widget Ajustar con la dirección establecida en horizontal.
@override
Widget build(BuildContext context) {
final lorem = [
'accusamus',
'dignissimos',
'ducimus',
'blanditiis',
'praesentium',
'voluptatum'
];
return Container(
height: 100,
width: 250,
child: Wrap(
direction: Axis.horizontal,
children: List.generate(
lorem.length,
(index) => Padding(
padding: const EdgeInsets.all(8.0),
child: Text(lorem[index]),
),
),
),
);
}
------------------------------------
Este fragmento debería ayudarte.
Puedes probarlo en https://dartpad.dev/028daa76945938f0e5c14aea6a8bf84b?null_safety=true
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SizedBox(
width: 500.0,
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: ['English', 'Russian', 'Spanish']
.map((language) => LanguageButton(
language: language,
))
.toList(),
),
SizedBox(height: 20,),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: ['Some really long language', 'French', 'German']
.map((language) => LanguageButton(
language: language,
))
.toList(),
),
],
),
);
}
}
class LanguageButton extends StatelessWidget {
final String language;
const LanguageButton({Key? key, required this.language}) : super(key: key);
@override
Widget build(BuildContext context) {
return OutlinedButton(
style: OutlinedButton.styleFrom(
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(30),
),
),
),
onPressed: () {
// TODO
},
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 8.0),
child: Text(language),
),
);
}
}
Utilicé una columna en lugar de ListView.builder. Tal vez eso sea lo suficientemente bueno.o lo que necesitas. Lo esencial es tener cada línea como una fila y establecer mainAxisAlignment en spaceBetween.
3
Esta es una buena idea, gracias, pero eso no es lo que necesito
- Pación
28/03/2021 a las 11:15
¿Qué necesitas exactamente? ¿Podrías especificar un poco más en la pregunta?
Dumazy
28/03/2021 a las 11:18
No necesito un generador de vistas de lista desplazable con botones de idiomas, el tamaño del botón debe tener un ancho adaptable según la longitud del nombre del idioma
- Pación
28/03/2021 a las 11:25