修改圈子列表加载问题

This commit is contained in:
CYH 2023-07-04 18:15:13 +08:00
parent b2934d29a6
commit 6a7dc210ea
5 changed files with 626 additions and 510 deletions

View File

@ -1,6 +1,6 @@
class CircleState { class CircleState {
String msg = ''; String msg = '';
int index = 1; int index = 0;
CircleState() { CircleState() {
///Initialize variables ///Initialize variables
} }

View File

@ -62,15 +62,17 @@ class _CirclePageState extends State<CirclePage>
controller.state.index = index; controller.state.index = index;
if (index == logic.circle.lists.length - 1) { if (index == logic.circle.lists.length - 1) {
logic.loadMore(); logic.loadMore();
} }
print(index.toString()); print(index.toString());
controller.update();
}, },
index: controller.state.index, index: controller.state.index,
itemCount: logic.circle.lists.length, itemCount: logic.circle.lists.length,
viewportFraction: 0.93, viewportFraction: 0.93,
// scale: 0.9, // scale: 0.9,
loop: false, loop: false,
key: UniqueKey(),
// pagination: new SwiperPagination(),// // pagination: new SwiperPagination(),//
// control: new SwiperControl(),// // control: new SwiperControl(),//
)) ))

File diff suppressed because it is too large Load Diff

View File

@ -13,12 +13,11 @@ class ListLogic extends GetxController {
bool isLoad = true; bool isLoad = true;
bool callOutMore = true; bool callOutMore = true;
var _circleId = ''; var circleId = '';
List<Lists> lists = []; List<Lists> lists = [];
final ScrollController scrollController = ScrollController(); final ScrollController scrollController = ScrollController();
loadCallOutListData(String circleId) async { loadCallOutListData() async {
_circleId = circleId;
var data = await DioManager.instance.get( var data = await DioManager.instance.get(
url: "/up-service/interest/$circleId/callouts", url: "/up-service/interest/$circleId/callouts",
params: {"page": callOutPage, "page_size": "20"}); params: {"page": callOutPage, "page_size": "20"});
@ -43,17 +42,22 @@ class ListLogic extends GetxController {
} }
} }
setCircleId(String id) {
circleId = id;
loadCallOutListData();
}
void refreshData() { void refreshData() {
callOutPage = 1; callOutPage = 1;
callOutMore = true; callOutMore = true;
loadCallOutListData(_circleId); loadCallOutListData();
} }
void loadMore() { void loadMore() {
if (callOutMore == false) return; if (callOutMore == false) return;
loadCallOutListData(_circleId); loadCallOutListData();
} }
@ -100,18 +104,23 @@ class ListLogic extends GetxController {
void onInit() { void onInit() {
// TODO: implement onInit // TODO: implement onInit
super.onInit(); super.onInit();
scrollController.addListener(() {
try {
if (scrollController.position.pixels == scrollController.position.maxScrollExtent) {
loadMore();
}
} catch (e) {
}
});
} }
@override @override
void onReady() { void onReady() {
// TODO: implement onReady // TODO: implement onReady
super.onReady(); super.onReady();
scrollController.addListener(() {
if (scrollController.position.pixels == scrollController.position.maxScrollExtent && callOutMore) {
loadMore();
}
});
} }
@override @override
void onClose() { void onClose() {

View File

@ -54,12 +54,12 @@ class _My_circlePageState extends State<My_circlePage>
// Text(controller.state.msg), // Text(controller.state.msg),
//使 //使
Expanded( Expanded(
child: Swiper( child: logic.circle.lists.isEmpty ? loaddingWidget(true) : 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, controller); return InfoListView(index, bean, controller);
}, },
index: logic.circle.lists.isNotEmpty ? 0 : controller.state.index, index: controller.state.index,
itemCount: logic.circle.lists.length, itemCount: logic.circle.lists.length,
viewportFraction: 0.93, viewportFraction: 0.93,
// scale: 0.9, // scale: 0.9,
@ -69,8 +69,8 @@ class _My_circlePageState extends State<My_circlePage>
if (index == logic.circle.lists.length - 1 && controller.isMore) { if (index == logic.circle.lists.length - 1 && controller.isMore) {
logic.loadMore(); logic.loadMore();
controller.update();
} }
}, },
// pagination: new SwiperPagination(),// // pagination: new SwiperPagination(),//
// control: new SwiperControl(),// // control: new SwiperControl(),//