You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.1 KiB

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../../data/services/db/sqflite_api.dart';
class MeetingController extends GetxController {
final ScrollController listController = ScrollController();
// 是否还有更多数据
bool isLoadingMore = true;
int page = 1;
TextEditingController titleController = TextEditingController(); // 录音标题
RxList dataList = [].obs;
@override
void onInit() {
super.onInit();
listController.addListener(_onScroll);
_getDataList();
}
@override
void onClose() {
listController.dispose();
titleController.dispose();
super.onClose();
}
void _onScroll() {
if (isLoadingMore &&
listController.position.pixels >=
listController.position.maxScrollExtent - 100) {
page++;
_getDataList();
}
}
// 请求本地数据
void _getDataList() async {
List list = await SqfliteApi.getMeetingList(page);
dataList.addAll(list);
if (list.length < 10) {
isLoadingMore = false;
} else {
isLoadingMore = true;
}
}
}