Flutter - список плиток или разделителей карт - PullRequest
0 голосов
/ 04 мая 2019

Я создаю просмотр списка из базы данных Firestore. Изначально я хотел разделить свои элементы с помощью ListTiles, так как я знаю, что они могут делать разделители, но я не получал нужную высоту из плиток, поэтому я перешел на прозрачные карты.

Проблема в том, что я не могу понять, как добавить разделитель или разделитель после каждой карты.

Вот мой код

Widget build(BuildContext context) {
if (snapshot == null) return CircularProgressIndicator();
return Scaffold(
  body: ListView.builder(
          itemCount: snapshot.length,
          itemBuilder: (context, index){
            return Card(
              elevation: 0,
              color: Colors.transparent,
              child: Row(
                children: <Widget>[
                  Padding(padding: EdgeInsets.all(10.0),),
                  Column(
                    children: <Widget>[
                      Padding(padding: EdgeInsets.all(10.0),),
                      Text(snapshot[index].data["month"], style:
                        TextStyle(fontSize: 30, fontWeight: 
FontWeight.w300),),
                      Text(snapshot[index].data["day"], style:
                      TextStyle(fontSize: 20),),
                    ],
                  )
                ],
              ),
            );
          }
        ),
      );

  }
}

Желаемая enter image description here

Ток

enter image description here

Я бы подумал, что листовые листы будут работать лучше, но я попробовал то, что я знал, как сделать собственные листовые листы, и не смог воспроизвести результаты.

1 Ответ

1 голос
/ 04 мая 2019

Используйте ListView.separated

ListView.separated(
  separatorBuilder: (context, index) => Divider(
        color: Colors.black,
      ),
  itemCount: 20,
  itemBuilder: (context, index) => Padding(
        padding: EdgeInsets.all(8.0),
        child: Center(child: Text("Index $index")),
      ),
)

или splitTiles ()

ListView(
  children: ListTile.divideTiles(
    context: context,
    tiles: [
      // your widgets here
    ]
  ).toList(),
)
...