3

尝试学习新的颤振框架,看起来非常有前途!浏览了所有在线演示,我现在尝试将外部数据添加到“pesto”部分的flutter_gallery示例项目中,这些数据可以通过每10个项目的新Future数据调用无限滚动。

https://github.com/flutter/flutter/blob/master/examples/flutter_gallery/lib/demo/pesto_demo.dart

我已经成功地对外部数据进行了“未来”调用并填充了示例的香蒜酱部分,但是现在我想将它提升到一个新的水平,并在用户滚动到另一个未来数据项时调用另外 10 个项目清单上的第 7 项。

很难找到一个例子来揭示我的困惑,想知道是否有人知道使用 flutter_gallery 示例解决这个问题的任何编码示例。在使用 CustomScrollView 的示例中,我无法理解正确的结构来执行此操作(有很多 ListView 示例,但这无济于事),无论是语法还是结构或两者兼而有之。

期待任何想法或代码片段。

4

1 回答 1

0

几周前我也开始学习 Flutter 并且面临同样的情况,这是我能够提出的第一个解决方案。答案可能会得到改进,让我知道你是如何解决这个问题的。

我能够使用 ListView 实现一个屏幕,该屏幕使用StreamBuilderBLoCListView.builder在滚动时添加更多项目。

下面是我作为孩子调用的StreamBuilder的代码片段: in body: of my Scaffold

StreamBuilder<List<Content>> _getContentsList() {
var page = 1;
return StreamBuilder<List<Content>>(
  stream: bloc.contents,
  initialData: [],
  builder: (context, snapshot) =>
      ListView.builder(itemBuilder: (context, index) {
        print('looping...');
        if (snapshot.data.isNotEmpty) {
          if (index < snapshot.data.length) {
            return ListTile(
              title: Text(
                snapshot.data.elementAt(index).title,
                style:
                    TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold),
              ),
              subtitle: Text(
                snapshot.data.elementAt(index).description,
                style: TextStyle(fontSize: 14.0),
              ),
            );
          } else if (index / 9 >= page) {
            page++;
            print('index: $index, page: $page');
            bloc.index.add(index);
          } else
            return null;
        }
      }),
);}

BLoC类中,我正在调用一个 API,该 API 采用起始索引并从该索引返回 9 个列表项。

于 2018-07-26T15:28:34.090 回答