【问题标题】:PagewiseListView keeps loading new data, even when there is no scrolling即使没有滚动,PagewiseListView 也会不断加载新数据
【发布时间】:2021-10-05 02:38:59
【问题描述】:

所以我的 pageLoadController 调用了从我的后端服务获取数据的函数,页面明智。这个控制器是这样在 initState 中定义的

void initState() {
super.initState();

_pageLoadController = PagewiseLoadController(
    pageSize: 10,
    pageFuture: (pageIndex) {
      return getDetails(pageIndex, 10);
    });
}

我的 PagewiseListView 小部件在 ListView 内被调用,而 ListView 在 Scaffold 的主体内。

   ListView(
              children: [
                Column(
                  crossAxisAlignment: CrossAxisAlignment.stretch,
                  children: <Widget>[
                    Text("Details",
                          style: TextStyle(
                          fontFamily: 'FuturaLT',
                          color: Theme.of(context).primaryColor,
                          fontSize: SizeConfig.safeBlockHorizontal * 5,
                          fontWeight: FontWeight.w400,
                          fontStyle: FontStyle.normal,
                        )),

                    PagewiseListView(
                        shrinkWrap: true,
                        physics: NeverScrollableScrollPhysics(),
                        itemBuilder: (context, entry, index) {
                        return _itemBuider(entry, SizeConfig.safeBlockVertical * 17);
                      },
                      pageLoadController: _pageLoadController,
                    )

其中 _itemBuilder 返回小部件并在 Entry 中显示数据。 现在,我过去使用过 pagewiseListViews,因此预期的行为是,当到达列表末尾时(通过滚动),pageLoad 会自动处理网络调用以获取下一个数据等。

getDetails() 的代码,只是它的通用大纲,请放心,这里的数据正在正确获取

 Future<List<Details>> getDetails(
      int localListSize, int  localListStart) async {
      var responseJson = await new NetworkUtils().netWorkcall(localListSize,localListStart);

     if (responseJson != null) {
      List<Details> list ;
      //map data to Details model
       return list;
    }

    return Future.value();
  }

在这种情况下,pageController 会继续进行网络调用,即使我根本没有滚动,更不用说到达末尾了。这使得应用程序非常缓慢。有什么我遗漏的,还是图书馆问题?在我以前从事的项目中从未遇到过这个问题。我使用的版本是

   flutter_pagewise: ^1.2.3

我也升级到了这个包的最新版本,还是不行。我错过了什么?

【问题讨论】:

    标签: android flutter dart pagination flutter-pagewise


    【解决方案1】:

    我最近遇到了一个类似的问题(在 2.0.1 版本中),我通过增大 pageSize 来解决这个问题。

    我认为这是pagewiseListView 的一个错误,当页面没有填满给定空间或填得太少时会发生这种情况;但是,我没有尝试验证该假设。

    顺便说一句,当调用getDetails 函数时,你给参数localListSize 赋值pageIndexlocalListStart 值10(这似乎是你的页面大小),也许这两个是相反的?

    【讨论】:

    • 将页面大小增加到 20,仍然对我不起作用:(。重新检查,它们没有倒置 :(
    猜你喜欢
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 2012-07-18
    相关资源
    最近更新 更多