base_list_provider.dart 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import 'package:flutter/material.dart';
  2. import 'package:liftmanager/widgets/state_layout.dart';
  3. class BaseListProvider<T> extends ChangeNotifier {
  4. final List<T> _list = [];
  5. List<T> get list => _list;
  6. StateType _stateType = StateType.loading;
  7. bool _hasMore = true;
  8. StateType get stateType => _stateType;
  9. bool get hasMore => _hasMore;
  10. void setStateTypeNotNotify(StateType stateType){
  11. _stateType = stateType;
  12. }
  13. void setStateType(StateType stateType){
  14. _stateType = stateType;
  15. notifyListeners();
  16. }
  17. void setHasMore(bool hasMore){
  18. _hasMore = hasMore;
  19. }
  20. void add(T data) {
  21. _list.add(data);
  22. notifyListeners();
  23. }
  24. void addAll(List<T> data) {
  25. _list.addAll(data);
  26. notifyListeners();
  27. }
  28. void insert(int i, T data) {
  29. _list.insert(i, data);
  30. notifyListeners();
  31. }
  32. void insertAll(int i, List<T> data) {
  33. _list.insertAll(i, data);
  34. notifyListeners();
  35. }
  36. void remove(T data) {
  37. _list.remove(data);
  38. notifyListeners();
  39. }
  40. void removeAt(int i) {
  41. _list.removeAt(i);
  42. notifyListeners();
  43. }
  44. void clear() {
  45. _list.clear();
  46. notifyListeners();
  47. }
  48. void refresh(){
  49. notifyListeners();
  50. }
  51. }