Флаттер StaggeredGridView показывать плитки при условии

Я использую StaggeredGridView в одном из моих проектов Flutter. Я хотел не загружать несколько плиток в зависимости от доступности данных.

Например. Я показываю 5 плиток, из которых 3 зависят от данных, доступных из сети. Иногда это может занять от 10 до 15 секунд. Прямо сейчас, если я возвращаю Container() до тех пор, пока мои данные не загрузятся, тогда он также будет содержать все пространство в макете.

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

заранее спасибо

2 ответа

Решение

Когда вы создаете свой StaggeredGridView, установить staggeredTiles собственности и убедитесь, что вы передаете StaggeredTile.fit(1) за плитки, которые вы хотите скрыть. Таким образом, плитка будет оборачивать содержимое, поэтому если его нет, оно будет скрыто.

Widget build(BuildContext context) {
  return StreamBuilder<GridData>(
    stream: [Stream end point] // your stream url,
    builder: (context, snapshot) {
     if (!snapshot.hasData) return LoadingSpinner();
     return [View that you want to return]; // Your grid code.
   }
  )
}

Образец кода

Другие вопросы по тегам