Flutter - использовать Sliver как ребенка внутри TabBarView - PullRequest
0 голосов
/ 28 мая 2019

Недавно я понял, как реализовать вкладки в SliverAppBar.Но теперь у меня проблема, что мне нужно получить SliverStaggeredGrid как дочерний элемент в TabBarView ...

Вот мой код (упрощенно):

Widget build(BuildContext context) {
return FutureBuilder(
    future: widget._future,
    builder:
        ((context, AsyncSnapshot<List<DocumentSnapshot>> snapshotPosts) {
      return CustomScrollView(
        slivers: <Widget>[
          SliverAppBar(
              bottom: TabBar(
                tabs: [
                  Tab(text: 'Tab 1'),
                  Tab(text: 'Tab 2'),
                ],
                controller: controller,
              ),
              title: Text("Test")),
          SliverFillRemaining(
            child: TabBarView(
              controller: controller,
              children: <Widget>[
                buildGrid(snapshotPosts),
                Center(child: Text("Tab two")),
              ],
            ),
          ),
        ],
      );
    }));
}

buildGrid(AsyncSnapshot<List<DocumentSnapshot>> snapshot) {
  return SliverStaggeredGrid.countBuilder(
    crossAxisCount: 3,
    itemCount: snapshot.data.length,
    itemBuilder: ((BuildContext context, int index) {
      return ListTile(
        title: Text(snapshot.data[index].toString()),
      );
    }
        // Your desired amount of children he
        ),
    staggeredTileBuilder: (int index) => new StaggeredTile.fit(1),
    mainAxisSpacing: 6.0,
    crossAxisSpacing: 6.0,
  );
}

Как я могу реализовать buildGrid как дочерний элемент моего TabBarView?

Есть идеи?Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...