Flutter GetX:ScrollController 附加到多个滚动视图断言失败:第 109 行 pos 12:'_positions.length == 1'

问题描述 投票:0回答:1

我使用

getX
进行状态管理,所以我有2页,第一页是用于显示帖子的listView,第二页用于创建新帖子,创建新帖子后将返回第一页,但是在制作新帖子后发帖总是出现错误

ScrollController 附加到多个滚动视图。 'package:flutter/src/widgets/scroll_controller.dart': 断言失败: 第 109 行 pos 12: '_positions.length == 1'

GetBuilder<HomeController>(
            init: controller,
            builder: (value) => Obx(
              () => value.postList.length == 0
                  ? CircularLoadingWidget(
                      height: 300,
                      onCompleteText: Strings.joinNeighborhood.tr,
                    )
                  : ListView.builder(
                      controller: controller.scrollController,
                      shrinkWrap: true,
                      itemCount: value.postList.length + 1,
                      itemBuilder: (context, index) {
                        if (index == 0) {
                          return BlogPostNewWidget(
                            type: "timeline",
                            userId: Get.find<AuthService>().currentUser.value.id,
                            communityId: null,
                          );
                        } else if (index == value.postList.length) {
                          return Center(
                            child: SizedBox(
                              height: 15,
                              width: 15,
                              child: CircularLoadingWidget2(height: 2),
                            ).marginSymmetric(vertical: 5.0),
                          );
                        } else {
                          return BlogPostItemWidget(
                            post: controller.postList
                                .elementAt(index - 1),
                          );
                        }
                      },
                    ),
            ),
          ),

这是我的控制器

Future getMorePostList({String blogSlug}) async {
    scrollController.addListener(() async {
      if (scrollController.position.maxScrollExtent ==
          scrollController.position.pixels) {
        skipCount.value++;
        var response = await _cmsKitRepository.getPostListWithDetail(blogSlug,
            skipCount: skipCount.value);
        blogPostPublicDtoList.addAll(response.items);
        if (response.items.length == 0) {
          _lastPage.value = true;
        }
      }
    });
  }

对不起我的英语..

flutter dart mobile flutter-getx
1个回答
0
投票

Flutter GetX : ScrollController 附加到多个滚动视图失败断言: line 109 pos 12: '_positions.length == 1' 似乎您在两个不同的地方使用相同的控制器,例如两个不同的列表视图。所以请在不同的地方使用不同的滚动控制器

© www.soinside.com 2019 - 2024. All rights reserved.