RtBaseController class abstract

Abstract base controller providing common functionality for GetX controllers.

RtBaseController extends GetxController and provides a foundation for implementing pagination, loading states, and data management patterns commonly needed across different screens in the application.

Features:

  • Pagination support with offset and limit tracking
  • Reactive loading state management
  • Total item count tracking for pagination UI

Subclasses should override onInit and call super to inherit initialization behavior.

Example:

class UserListController extends RtBaseController {
  final users = <User>[].obs;

  @override
  Future<void> onInit() async {
    super.onInit();
    limit.value = 20;
    await loadUsers();
  }

  Future<void> loadUsers() async {
    isLoading.value = true;
    try {
      final response = await api.getUsers(offset: pageOffset, limit: limit.value);
      users.addAll(response.data);
      totalCount.value = response.total;
      pageOffset += limit.value;
    } finally {
      isLoading.value = false;
    }
  }
}

See also:

Inheritance

Constructors

RtBaseController()

Properties

allowedConnectivityOption List<ConnectivityResult>
List of allowed connectivity types for internet connection validation.
getter/setter pair
checkInternetConnectivity bool
Flag to enable/disable automatic internet connectivity monitoring.
getter/setter pair
errorWidget Widget?
Optional custom error widget to display when errors occur.
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
hasListeners bool
no setterinherited
initialized bool
Checks whether the controller has already been initialized.
no setterinherited
isClosed bool
Checks whether the controller has already been closed.
no setterinherited
isConnected RxBool
Reactive internet connection state indicator.
getter/setter pair
isLoading RxBool
Reactive loading state indicator.
getter/setter pair
limit RxInt
Reactive pagination limit.
getter/setter pair
listeners int
no setterinherited
onDelete InternalFinalCallback<void>
Internal callback that starts the cycle of this controller.
finalinherited
onStart InternalFinalCallback<void>
Called at the exact moment the widget is allocated in memory. It uses an internal "callable" type, to avoid any @overrides in subclases. This method should be internal and is required to define the lifetime cycle of the subclass.
finalinherited
pageOffset int
Current pagination offset.
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
subscription StreamSubscription<List<ConnectivityResult>>?
Stream subscription for connectivity changes.
getter/setter pair
totalCount RxInt
Reactive total count of available items.
getter/setter pair

Methods

$configureLifeCycle() → void
inherited
addListener(GetStateUpdate listener) → Disposer
Register a closure to be called when the object notifies its listeners.
inherited
addListenerId(Object? key, GetStateUpdate listener) → Disposer
inherited
dispose() → void
Disposes the controller and cleans up resources.
override
disposeId(Object id) → void
To dispose an id from future updates(), this ids are registered by GetBuilder() or similar, so is a way to unlink the state change with the Widget from the Controller.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyChildrens() → void
inherited
onClose() → void
Called before onDelete method. onClose might be used to dispose resources used by the controller. Like closing events, or streams before the controller is destroyed. Or dispose objects that can potentially create some memory leaks, like TextEditingControllers, AnimationControllers. Might be useful as well to persist some data on disk.
inherited
onInit() Future<void>
Initializes the controller and sets up connectivity monitoring.
override
onReady() → void
Called 1 frame after onInit(). It is the perfect place to enter navigation events, like snackbar, dialogs, or a new route, or async request.
inherited
refresh() → void
inherited
refreshGroup(Object id) → void
inherited
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that the object notifies.
inherited
removeListenerId(Object id, VoidCallback listener) → void
inherited
toString() String
A string representation of this object.
inherited
update([List<Object>? ids, bool condition = true]) → void
Rebuilds GetBuilder each time you call update(); Can take a List of ids, that will only update the matching GetBuilder( id: ), ids can be reused among GetBuilders like group tags. The update will only notify the Widgets, if condition is true.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited