Я создаю приложение, которое использует построитель потоков, извлекая данные из облака Firestore. Вот код:
return Scaffold(
backgroundColor: Colors.black,
appBar: appBar,
drawer: Sidebar(),
body: Center(
child: StreamBuilder(
stream: stream,
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Text(
"Loading...",
style: TextStyle(
color: Colors.white,
),
);
} else {
return GridView.builder(
itemCount: snapshot.data.documents.length,
shrinkWrap: true,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: globals.gridCountValue != null ? globals.gridCountValue : 2,
),
itemBuilder: (context, index) {
return _buildList(context, snapshot.data.documents[index]);
},
);
}
},
),
),
floatingActionButton: FloatingActionButton(
// onPressed: () => shuffleAlbums(),
onPressed: () {},
child: Icon(Icons.shuffle),
elevation: 2,
backgroundColor: Colors.black,
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
);
_билдлист:
Widget _buildList(BuildContext context, DocumentSnapshot document) {
if (document.data != null) {
return new AlbumTile(data: document.data);
}
}
Я мог перетасовать порядок списка, когда использовал жестко закодированный список альбомов, но теперь, когда я использую построитель потоков, я не знаю, как достичь такого результата. Я в основном хочу изменить порядок списка в случайном порядке нажатием кнопки.
Спасибо за чтение!