Muestra el número (recuento) de cada ítem de la lista por el número total de ítems en Flutter.
Quiero mostrar el número de cada artículo que está dentro de la lista en una tarjeta, encontré algunos ejemplos que dijeron que debería hacerlo con un bucle for(), y eso es lo que hice, pero el número no se está incrementando en absoluto, ¿alguien puede mostrarme qué estoy haciendo mal?
Mi código:
“`
child: ScrollablePositionedList.builder(
itemScrollController: itemController,
itemCount: selectedChallenge.contestantsList.length,
shrinkWrap: true,
itemBuilder: (context, index) {
final sortedList = selectedChallenge.contestantsList
..sort((itemOne, itemTwo) =>
itemTwo.points.compareTo(itemOne.points));
final data = sortedList[index];
// Mi bucle for
for (var i = 0;
i < selectedChallenge.contestantsList.length;
i++,) {
return Card(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Row(
children: [
Padding(
padding: const EdgeInsets.all(10.0),
child: Text('${i}'),
),
SizedBox(
height: 35,
width: 35,
child: CachedNetworkImage(
imageUrl: data.avatar,
),
),
SizedBox(
width: 12,
),
Text(
data.firstName + ' ' + data.lastName,
),
],
),
Text(data.points.toString()),
],
),
);
}
},
),
Lo que tengo:
Lo que quiero:
davy.ai
Parece que el problema está en su bucle for. Está utilizando la variable ‘i’ para mostrar el número de índice en la Tarjeta, pero está incrementando dentro del bucle for, lo que significa que siempre se mostrará como 0.
Para solucionar esto, puede cambiar el bucle for para que comience en 1 e incremente en 1 en cada iteración, como en el siguiente ejemplo:
Al comenzar el bucle en 1 y restar 1 de la variable ‘i’ al acceder a sortedList, puede mostrar el número de índice correcto en la Tarjeta.