修改圈子列表加载同一个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 // TODO: implement onReady
super.onReady(); super.onReady();
scrollController.addListener(() { scrollController.addListener(() {
if (scrollController.position.pixels == scrollController.position.maxScrollExtent && lists.isNotEmpty) { if (scrollController.position.pixels == scrollController.position.maxScrollExtent && callOutMore) {
loadMore(); 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(); final CircleState state = CircleState();
int page = 1; int page = 1;
bool isMore = true;
@override @override
void onInit() async { void onInit() async {
super.onInit(); super.onInit();
var data = await DioManager.instance 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( var bean = BaseResponse<InterestsBean>.fromJson(
data, (data) => InterestsBean.fromJson(data)); data, (data) => InterestsBean.fromJson(data));
circle = bean.data!; circle = bean.data!;
if (circle.lists.length < 20) {
isMore = false;
}
update(); update();
} }
loadMore() async { loadMore() async {
page = page++; page = page++;
var data = await DioManager.instance 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( var bean = BaseResponse<InterestsBean>.fromJson(
data, (data) => InterestsBean.fromJson(data)); data, (data) => InterestsBean.fromJson(data));
circle = bean.data!;
circle.lists.addAll(bean.data!);
if (circle.lists.length < 20 * page) {
isMore = false;
}
update(); update();
} }

View File

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