SuperController<T> class
abstract
A controller that combines full lifecycle management with state management.
This controller is ideal for complex scenarios where you need both:
- Full app lifecycle awareness
- State management with loading/error states
Type parameters:
T: The type of data this controller will manage
Example:
class HomeController extends SuperController<HomeState> {
@override
void onResumed() {
// App came to foreground
fetchData();
}
Future<void> fetchData() async {
change(state, status: RxStatus.loading());
try {
final data = await repository.getData();
change(HomeState(data: data), status: RxStatus.success());
} catch (e) {
change(state, status: RxStatus.error(e.toString()));
}
}
}
- Inheritance
-
- Object
- Listenable
- ListNotifier
- GetxController
- FullLifeCycleController
- SuperController
- Mixed-in types
- Available extensions
Constructors
Properties
- hashCode → int
-
The hash code for this object.
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
- isDisposed → bool
-
no setterinherited
- listenersLength → int
-
Returns the number of active listeners.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- state → T
-
Alias for value for convenience.
no setterinherited
-
status
↔ GetStatus<
T> -
The current status of the state.
getter/setter pairinherited
- value ↔ T
-
The current value of the state.
getter/setter pairinherited
Methods
-
addListener(
GetStateUpdate listener) → Disposer -
Register a closure to be called when the object notifies its listeners.
inherited
-
addListenerId(
Object? key, GetStateUpdate listener) → Disposer -
Adds a listener to a specific group identified by
key.inherited -
change(
GetStatus< T> status) → void -
Changes the status if it's different from the current status.
inherited
-
containsId(
Object id) → bool -
Checks if a listener group with the given ID exists.
inherited
-
containsListener(
GetStateUpdate listener) → bool -
inherited
-
didChangeAccessibilityFeatures(
) → void -
Called when the system changes the set of currently active accessibility
features.
inherited
-
didChangeAppLifecycleState(
AppLifecycleState state) → void -
Called when the system puts the app in the background or returns
the app to the foreground.
inherited
-
didChangeLocales(
List< Locale> ? locales) → void -
Called when the system tells the app that the user's locale has
changed. For example, if the user changes the system language
settings.
inherited
-
didChangeMetrics(
) → void -
Called when the application's dimensions change. For example,
when a phone is rotated.
inherited
-
didChangePlatformBrightness(
) → void -
Called when the platform brightness changes.
inherited
-
didChangeTextScaleFactor(
) → void -
Called when the platform's text scale factor changes.
inherited
-
didChangeViewFocus(
ViewFocusEvent event) → void -
Called whenever the PlatformDispatcher receives a notification that the
focus state on a view has changed.
inherited
-
didHaveMemoryPressure(
) → void -
Called when the system is running low on memory.
inherited
-
didPopRoute(
) → Future< bool> -
Called when the system tells the app to pop the current route, such as
after a system back button press or back gesture.
inherited
-
didPushRoute(
String route) → Future< bool> -
Called when the host tells the application to push a new route onto the
navigator.
inherited
-
didPushRouteInformation(
RouteInformation routeInformation) → Future< bool> -
Called when the host tells the application to push a new
RouteInformation and a restoration state onto the router.
inherited
-
didRequestAppExit(
) → Future< AppExitResponse> -
Called when a request is received from the system to exit the application.
inherited
-
dispose(
) → void -
Disposes all listener groups.
inherited
-
disposeId(
Object id) → void -
Disposes a specific listener group.
inherited
-
futurize(
Future< T> body(), {T? initialData, String? errorMessage, bool useEmpty = true}) → void -
Executes a future and automatically handles status changes.
inherited
-
handleCancelBackGesture(
) → void -
Called when a predictive back gesture is canceled, indicating that no
navigation should occur.
inherited
-
handleCommitBackGesture(
) → void -
Called when a predictive back gesture is finished successfully, indicating
that the current route should be popped.
inherited
-
handleStartBackGesture(
PredictiveBackEvent backEvent) → bool -
Called at the start of a predictive back gesture.
inherited
-
handleStatusBarTap(
) → void -
Called when the user taps the status bar on iOS, to scroll a scroll
view to the top.
inherited
-
handleUpdateBackGestureProgress(
PredictiveBackEvent backEvent) → void -
Called when a predictive back gesture moves.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyGroupChildrens(
Object id) → void -
Reports that a listener group was read.
inherited
-
obx(
NotifierBuilder< T> widget, {Widget onError(String? error)?, Widget? onLoading, Widget? onEmpty, WidgetBuilder? onCustom}) → Widget -
Available on StateMixin<
Builds a widget based on the current status.T> , provided by the StateExt extension -
onAccessibilityChanged(
) → void -
Called when the system changes the set of currently active accessibility
features.
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
-
onDelete(
) → void -
Called when the controller is removed from memory.
inherited
-
onDetached(
) → void -
Called before the app is destroyed.
This is the final callback the app will receive before it is terminated.
inherited
-
onHidden(
) → void -
Called when the app is hidden (e.g., when the device is locked).
inherited
-
onInactive(
) → void -
Called when the app is in an inactive state and is not receiving user input.
For example, when a phone call is received or when the app is in a
multi-window mode.
inherited
-
onInit(
) → void -
Called immediately after the widget is allocated in memory.
You might use this to initialize something for the controller.
inherited
-
onMemoryPressure(
) → void -
Called when the system is running low on memory.
Override this method to release caches or other resources that aren't
critical for the app to function.
inherited
-
onPaused(
) → void -
Called when the app is not currently visible to the user, not responding to
user input, and running in the background.
inherited
-
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
-
onResumed(
) → void -
Called when the system reports that the app is visible and interactive.
This is called when the app returns to the foreground.
inherited
-
onStart(
) → void -
Called at the exact moment the widget is allocated in memory.
It uses an internal "callable" type, to avoid any @overrides in subclasses.
This method should be internal and is required to define the
lifetime cycle of the subclass.
inherited
-
refresh(
) → void -
Notifies all listeners to update.
inherited
-
refreshGroup(
Object id) → void -
Refreshes only the listeners in a specific group.
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 -
Removes a listener from a specific group.
inherited
-
reportAdd(
VoidCallback disposer) → void -
Reports a disposer callback to the global notifier.
inherited
-
reportRead(
) → void -
Reports that this notifier was read.
inherited
-
setEmpty(
) → void -
Sets the status to empty.
inherited
-
setError(
Object error) → void -
Sets the status to error with the given error object.
inherited
-
setLoading(
) → void -
Sets the status to loading.
inherited
-
setSuccess(
T data) → void -
Sets the status to success with the given data.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
update(
[List< Object> ? ids, bool condition = true]) → void -
Notifies listeners to update the UI.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited