flutter StaggeredGridView показывать плитки по условию

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

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

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

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


person Sam    schedule 13.02.2019    source источник


Ответы (2)


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

person Jordan Davies    schedule 13.02.2019

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.
   }
  )
}

Образец кода

person Santosh Anand    schedule 13.02.2019