import 'package:flutter/material.dart'; import 'package:get/get_rx/src/rx_types/rx_types.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:sk_base_mobile/models/base_search_more.model.dart'; mixin BaseSearchMoreController { RxList list = RxList([]); RxString searchKey = ''.obs; final searchBarTextConroller = TextEditingController(); RefreshController refreshController = RefreshController(initialRefresh: true); int page = 1; int limit = 15; int total = 0; RxList selectedIndex = RxList([]); getData({bool isRefresh = false}) {} Future onRefresh() async { await getData(isRefresh: true).then((_) { refreshController.refreshCompleted(resetFooterState: true); }).catchError((_) { refreshController.refreshFailed(); }); } Future onLoading() async { await getData().then((_) { if (_.isEmpty) { refreshController.loadNoData(); } else { refreshController.loadComplete(); } }).catchError((_) { refreshController.loadFailed(); }); } }