RtBaseView<T extends RtBaseController> class abstract

Abstract base view class for creating screens with GetX architecture.

RtBaseView provides a foundation for building views that integrate with RtBaseController and GetX state management. It handles platform-specific back navigation behavior and provides a clean separation between UI and logic.

Features:

  • Automatic controller binding through GetX
  • Platform-specific pop behavior (iOS vs Android)
  • Convenient vm accessor for the controller
  • Immutable widget design
  • Lifecycle management through GetX

Subclasses must implement baseViewBuild to define their UI structure.

Example:

class UserListView extends RtBaseView<UserListController> {
  const UserListView({Key? key}) : super(key: key);

  @override
  Widget baseViewBuild(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Users')),
      body: Obx(() => vm.isLoading.value
        ? CircularProgressIndicator()
        : ListView.builder(
            itemCount: vm.users.length,
            itemBuilder: (context, index) => UserTile(vm.users[index]),
          ),
      ),
    );
  }
}

Navigation:

// Navigate to the view
Get.to(() => UserListView());

// With binding
Get.to(
  () => UserListView(),
  binding: BindingsBuilder(() {
    Get.lazyPut(() => UserListController());
  }),
);

See also:

  • RtBaseController for the base controller implementation
  • GetWidget for the underlying GetX widget
  • RtBaseBinding for dependency injection bindings
Inheritance
Available extensions
Annotations

Constructors

RtBaseView({Key? key})
Creates a base view widget.
const

Properties

controller → T
no setterinherited
hashCode → int
The hash code for this object.
no setterinherited
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
marginZero → Widget

Available on Widget, provided by the WidgetMarginX extension

no setter
paddingZero → Widget

Available on Widget, provided by the WidgetPaddingX extension

no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
sliverBox → Widget

Available on Widget, provided by the WidgetSliverBoxX extension

no setter
tag → String?
finalinherited
vm → T
Convenient accessor for the controller.
no setter

Methods

baseViewBuild(BuildContext context) → Widget
Builds the actual view content.
build(BuildContext context) → Widget
Builds the base widget tree with platform-specific back button handling.
override
createElement() → GetWidgetCacheElement
Inflates this configuration to a concrete instance.
inherited
createWidgetCache() → WidgetCache<GetWidgetCache>
inherited
debugDescribeChildren() → List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
marginAll(double margin) → Widget

Available on Widget, provided by the WidgetMarginX extension

marginOnly({double left = 0.0, double top = 0.0, double right = 0.0, double bottom = 0.0}) → Widget

Available on Widget, provided by the WidgetMarginX extension

marginSymmetric({double horizontal = 0.0, double vertical = 0.0}) → Widget

Available on Widget, provided by the WidgetMarginX extension

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
paddingAll(double padding) → Widget

Available on Widget, provided by the WidgetPaddingX extension

paddingOnly({double left = 0.0, double top = 0.0, double right = 0.0, double bottom = 0.0}) → Widget

Available on Widget, provided by the WidgetPaddingX extension

paddingSymmetric({double horizontal = 0.0, double vertical = 0.0}) → Widget

Available on Widget, provided by the WidgetPaddingX extension

toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) → String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String
Returns a one-line detailed description of the object.
inherited
toStringShort() → String
A short, textual description of this widget.
inherited

Operators

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