state_manager library
Get State Manager is a light, modern and powerful state manager to Flutter
Classes
-
Bind<
T> -
BindElement<
T> - The BindElement is responsible for injecting dependencies into the widget tree so that they can be observed
-
Binder<
T> - Binding
-
Binding should be extended.
When using
GetMaterialApp, allGetPages and navigation methods (like Get.to()) have abindingproperty that takes an instance of Bindings to manage the dependencies() (via Get.put()) for the Route you are opening. - Binds
-
CustomStatus<
T> - Represents a custom status.
-
EmptyStatus<
T> - Represents an empty status.
- Engine
-
ErrorStatus<
T, S> - Represents an error status with an error object.
- FullLifeCycleController
- A controller that can observe the full app lifecycle.
-
GetBuilder<
T extends GetxController> - GetInterface
- GetInterface allows any auxiliary package to be merged into the "Get" class through extensions
-
GetListenable<
T> - A listenable that implements RxInterface for reactive programming.
-
GetNotifier<
T> - A notifier with status, state, and GetX lifecycle support.
-
GetResponsiveView<
T> - A responsive view that extends GetView with responsive capabilities.
-
GetResponsiveWidget<
T extends GetLifeCycleMixin> - A responsive widget that extends GetWidget with responsive capabilities.
-
GetStatus<
T> - Sealed class representing different states of a notifier.
-
GetView<
T> -
GetView is a great way of quickly access your Controller
without having to call
Get.find<AwesomeController>()yourself. -
GetWidget<
S extends GetLifeCycleMixin> -
GetWidget is a great way of quickly access your individual Controller
without having to call
Get.find<AwesomeController>()yourself. Get save you controller on cache, so, you can to use Get.create() safely GetWidget is perfect to multiples instance of a same controller. Each GetWidget will have your own controller, and will be call events asonInitandonClosewhen the controller get in/get out on memory. -
GetX<
T extends GetLifeCycleMixin> - A StatefulWidget that provides reactive state management.
- GetxController
- A base controller class that provides state management functionality.
-
GetXState<
T extends GetLifeCycleMixin> - The state for a GetX widget.
-
LoadingStatus<
T> - Represents a loading status.
- Observer
- An experimental widget that observes reactive changes.
- Obx
- The simplest reactive widget in GetX.
- ObxElement
- Element for Obx widgets that tracks reactive dependencies.
- ObxStatelessWidget
- A StatelessWidget that can listen to reactive changes.
-
ObxValue<
T extends RxInterface> - Similar to Obx, but manages a local state. Pass the initial data in constructor. Useful for simple local states, like toggles, visibility, themes, button states, etc. Sample: ObxValue((data) => Switch( value: data.value, onChanged: (flag) => data.value = flag, ), false.obs, ),
- ObxWidget
- The ObxWidget is the base for all GetX reactive widgets
- ResponsiveScreen
- Provides information about the current screen.
- ResponsiveScreenSettings
- Settings for responsive screen breakpoints.
-
Rx<
T> -
Foundation class used for custom
Typesoutside the common native Dart types. For example, any custom "Model" class, like User().obs will useRxas wrapper. - RxBool
- RxController
- A base controller class for reactive state management using Rx variables.
- RxDouble
- RxInt
-
RxInterface<
T> -
This class is the foundation for all reactive (Rx) classes that makes Get
so powerful.
This interface is the contract that
_RxImpl<T>uses in all it's subclass. -
RxList<
E> -
Create a list similar to
List<T> -
RxMap<
K, V> -
Rxn<
T> - RxnBool
- RxnDouble
- RxnInt
- RxnNum
- RxnString
-
Rx class for
StringType. - RxNum
-
RxSet<
E> - RxString
-
Rx class for
StringType. -
StateController<
T> - A controller that manages state for asynchronous operations.
-
SuccessStatus<
T> - Represents a success status with data.
-
SuperController<
T> - A controller that combines full lifecycle management with state management.
-
Value<
T> - A value that can be listened to and has status tracking.
-
ValueBuilder<
T> - Manages a local state like ObxValue, but uses a callback instead of a Rx value.
-
ValueBuilderState<
T> - The state for ValueBuilder.
- Worker
- Workers
Enums
- ScreenType
- Enum representing different screen types.
- SmartManagement
- GetX by default disposes unused controllers from memory, Through different behaviors. SmartManagement.full SmartManagement.full is the default one. Dispose classes that are not being used and were not set to be permanent. In the majority of the cases you will want to keep this config untouched. If you new to GetX then don't change this. SmartManagement.onlyBuilder only controllers started in init: or loaded into a Binding with Get.lazyPut() will be disposed. If you use Get.put() or Get.putAsync() or any other approach, SmartManagement will not have permissions to exclude this dependency. With the default behavior, even widgets instantiated with "Get.put" will be removed, unlike SmartManagement.onlyBuilders. SmartManagement.keepFactoryJust like SmartManagement.full, it will remove it's dependencies when it's not being used anymore. However, it will keep their factory, which means it will recreate the dependency if you need that instance again.
Mixins
- FullLifeCycleMixin
- A mixin that provides full lifecycle callbacks for the controller.
- GetResponsiveMixin
- Mixin that provides responsive building capabilities.
- GetSingleTickerProviderStateMixin
-
Used like
SingleTickerProviderMixinbut only with Get Controllers. Simplifies AnimationController creation inside GetxController. - GetTickerProviderStateMixin
-
Used like
TickerProviderMixinbut only with Get Controllers. Simplifies multiple AnimationController creation inside GetxController. -
RxObjectMixin<
T> -
global object that registers against
GetXandObx, and allows the reactivity of thoseWidgetsand Rx values. - ScrollMixin
- A mixin that provides scroll-based data fetching capabilities.
- StatelessObserverComponent
- Mixin that adds reactive tracking to StatelessElement.
-
StateMixin<
T> - Mixin that adds state management with status tracking.
Extensions
- BoolExtension on bool
- DoubleExtension on double
- IntExtension on int
-
ListExtension
on List<
E> -
MapExtension
on Map<
K, V> - ReadExt on BuildContext
-
RxBoolExt
on Rx<
bool> -
RxDoubleExt
on Rx<
double> -
RxIntExt
on Rx<
int> -
RxnBoolExt
on Rx<
bool?> -
RxnDoubleExt
on Rx<
double?> -
RxnIntExt
on Rx<
int?> -
RxnNumExt
on Rx<
T?> -
RxnStringExt
on Rx<
String?> -
RxNumExt
on Rx<
T> -
RxStringExt
on Rx<
String> - RxT on T
- RxTnew on Object
-
This method will replace the old
.obsmethod. It's a breaking change, but it is essential to avoid conflicts with the new dart 3 features. T will be inferred by contextual type inference rather than the extension type. -
SetExtension
on Set<
E> -
StateExt
on StateMixin<
T> - Extension on StateMixin that provides a widget builder.
-
StatusDataExt
on GetStatus<
T> - Extension on GetStatus providing convenience getters.
- StringExtension on String
- WatchExt on BuildContext
Properties
- Get → _GetImpl
-
final
Functions
-
debounce<
T> (GetListenable< T> listener, WorkerCallback<T> callback, {Duration? time, Function? onError, void onDone()?, bool? cancelOnError}) → Worker -
debounce is similar to interval, but sends the last value.
Useful for Anti DDos, every time the user stops typing for 1 second,
for instance.
When
listeneremits the last "value", whentimehits, it callscallbackwith the last "value" emitted. -
defaultLogWriterCallback(
String value, {bool isError = false}) → void - default logger from GetX
-
ever<
T> (GetListenable< T> listener, WorkerCallback<T> callback, {Object? condition = true, Function? onError, void onDone()?, bool? cancelOnError}) → Worker -
Called every time
listenerchanges. As long as theconditionreturns true. -
everAll(
List< RxInterface> listeners, WorkerCallback callback, {Object? condition = true, Function? onError, void onDone()?, bool? cancelOnError}) → Worker -
Similar to ever, but takes a list of
listeners, the condition for thecallbackis common to alllisteners, and thecallbackis executed to each one of them. The Worker is common to all, soworker.dispose()will cancel all streams. -
interval<
T> (GetListenable< T> listener, WorkerCallback<T> callback, {Duration time = const Duration(seconds: 1), Object? condition = true, Function? onError, void onDone()?, bool? cancelOnError}) → Worker -
Ignore all changes in
listenerduringtime(1 sec by default) or untilconditionis met (can be a bool expression or abool Function()), It brings the 1st "value" since the period of time, so if you click a counter button 3 times in 1 sec, it will show you "1" (after 1 sec of the first press) click counter 3 times in 1 sec, it will show you "4" (after 1 sec) click counter 2 times in 1 sec, it will show you "7" (after 1 sec). -
once<
T> (GetListenable< T> listener, WorkerCallback<T> callback, {Object? condition = true, Function? onError, void onDone()?, bool? cancelOnError}) → Worker -
once()will execute only 1 time whenconditionis met and cancel the subscription to thelistenerstream right after that.conditiondefines whencallbackis called, and can be a bool or abool Function().
Typedefs
-
FuturizeCallback<
T> = Future< T> Function(VoidCallback fn) -
GetControllerBuilder<
T extends GetLifeCycleMixin> = Widget Function(T controller) -
GetXControllerBuilder<
T extends GetLifeCycleMixin> = Widget Function(T controller) - Builder function for GetX widgets.
-
InitBuilder<
T> = T Function() - LogWriterCallback = void Function(String text, {bool isError})
- VoidCallback from logs
-
NotifierBuilder<
T> = Widget Function(T state) - Builder function for notifier widgets.
-
ValueBuilderBuilder<
T> = Widget Function(T snapshot, ValueBuilderUpdateCallback< T> updater) - Builder function for ValueBuilder.
-
ValueBuilderUpdateCallback<
T> = void Function(T snapshot) - Callback function to update the value in ValueBuilder.
-
ValueUpdater<
T> = T Function() - VoidCallback = void Function()
- WidgetCallback = Widget Function()
-
WorkerCallback<
T> = dynamic Function(T callback)
Exceptions / Errors
-
BindError<
T>