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