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();