From b2934d29a6794bf5f98dd6f3c04fc864f2a6ae56 Mon Sep 17 00:00:00 2001 From: CYH <13923927013@163.com> Date: Tue, 4 Jul 2023 16:42:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9C=88=E5=AD=90=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=8A=A0=E8=BD=BD=E5=90=8C=E4=B8=80=E4=B8=AAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/app/circle/widgets/list_logic.dart | 8 +++++++- circle_app/lib/app/my_circle/logic.dart | 17 ++++++++++++++--- circle_app/lib/app/my_circle/view.dart | 6 +++--- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/circle_app/lib/app/circle/widgets/list_logic.dart b/circle_app/lib/app/circle/widgets/list_logic.dart index 607d9bc..dd0c87a 100644 --- a/circle_app/lib/app/circle/widgets/list_logic.dart +++ b/circle_app/lib/app/circle/widgets/list_logic.dart @@ -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(); + } } \ No newline at end of file diff --git a/circle_app/lib/app/my_circle/logic.dart b/circle_app/lib/app/my_circle/logic.dart index 44bc4a3..3f15fae 100644 --- a/circle_app/lib/app/my_circle/logic.dart +++ b/circle_app/lib/app/my_circle/logic.dart @@ -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.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.fromJson( data, (data) => InterestsBean.fromJson(data)); - circle = bean.data!; + + circle.lists.addAll(bean.data!); + + if (circle.lists.length < 20 * page) { + isMore = false; + } update(); } diff --git a/circle_app/lib/app/my_circle/view.dart b/circle_app/lib/app/my_circle/view.dart index 53cb036..e94e759 100644 --- a/circle_app/lib/app/my_circle/view.dart +++ b/circle_app/lib/app/my_circle/view.dart @@ -50,14 +50,14 @@ class _My_circlePageState extends State 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 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();