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:
- GetxController for the base GetX controller functionality
- RtBaseView for the corresponding view implementation
- Inheritance
-
- Object
- GetLifeCycle
- DisposableInterface
- GetxController
- RtBaseController
Constructors
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
idfrom future updates(), this ids are registered byGetBuilder()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
GetBuildereach time you callupdate(); Can take a List ofids, that will only update the matchingGetBuilder( id: ),idscan be reused amongGetBuilderslike group tags. The update will only notify the Widgets, ifconditionis true.inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited