修改圈子列表加载同一个bug

This commit is contained in:
CYH 2023-07-04 16:42:47 +08:00
parent 18b1468db4
commit b2934d29a6
3 changed files with 24 additions and 7 deletions

View File

@ -108,9 +108,15 @@ class ListLogic extends GetxController {
// TODO: implement onReady
super.onReady();
scrollController.addListener(() {
if (scrollController.position.pixels == scrollController.position.maxScrollExtent && lists.isNotEmpty) {
if (scrollController.position.pixels == scrollController.position.maxScrollExtent && callOutMore) {
loadMore();
}
});
}
@override
void onClose() {
// TODO: implement onClose
super.onClose();
scrollController.dispose();
}
}

View File

@ -14,25 +14,36 @@ class MyCircleLogic extends GetxController {
final CircleState state = CircleState();
int page = 1;
bool isMore = true;
@override
void onInit() async {
super.onInit();
var data = await DioManager.instance
.get(url: Api.getMyCircleInterests, params: {"page": page});
.get(url: Api.getMyCircleInterests, params: {"page": page,'page_size':20});
var bean = BaseResponse<InterestsBean>.fromJson(
data, (data) => InterestsBean.fromJson(data));
circle = bean.data!;
if (circle.lists.length < 20) {
isMore = false;
}
update();
}
loadMore() async {
page = page++;
var data = await DioManager.instance
.get(url: Api.getMyCircleInterests, params: {"page": page});
.get(url: Api.getMyCircleInterests, params: {"page": page,'page_size':20});
var bean = BaseResponse<InterestsBean>.fromJson(
data, (data) => InterestsBean.fromJson(data));
circle = bean.data!;
circle.lists.addAll(bean.data!);
if (circle.lists.length < 20 * page) {
isMore = false;
}
update();
}

View File

@ -50,14 +50,14 @@ class _My_circlePageState extends State<My_circlePage>
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
child: Column(children: [
Get.arguments == null ? navigatorItem() : backNavigatorItem(),
backNavigatorItem(),
// Text(controller.state.msg),
//使
Expanded(
child: Swiper(
itemBuilder: (BuildContext context, int index) {
var bean = logic.circle.lists[index];
return InfoListView(index, bean, logic);
return InfoListView(index, bean, controller);
},
index: logic.circle.lists.isNotEmpty ? 0 : controller.state.index,
itemCount: logic.circle.lists.length,
@ -66,7 +66,7 @@ class _My_circlePageState extends State<My_circlePage>
loop: false,
onIndexChanged: (index) {
controller.state.index = index;
if (index == logic.circle.lists.length - 1) {
if (index == logic.circle.lists.length - 1 && controller.isMore) {
logic.loadMore();
controller.update();