RouteWidget class
Widget use to define sub routes or just for better organization or add custom transition to a particular route.
For example let's take this routes
final myNavigator = NavigationBuilder.create(
routes: {
'/': (_) => HomePage(),
'/Page1': (_) => Page1(),
'/Page1/:id': (data) => Page1(id: data.pathParam['id']),
'/Page1/page12': (_) => Page12(),
},
);
The above routes definition can be written like this:
final myNavigator = NavigationBuilder.create(
routes: {
'/': (_) => HomePage(),
'/Page1': (_) => RouteWidget(
routes: {
'/': (_) => Page1(),
'/:id': (data) => Page1(id: data.pathParam['id']),
'/page12': (_) => Page12(),
},
)
},
);
You can also use the builder property to wrap the route outlet widget inside an other widget.
final myNavigator = NavigationBuilder.create(
routes: {
'/': (_) => HomePage(),
'/Page1': (_) => RouteWidget(
// Inside widget tree, you can get the router outlet widget using
// `context.routerOutlet`
builder: (routeOutlet) {
// If you extract this Scaffold to a Widget class, you do not
// need to use the Builder widget
return Scaffold(
appBar: AppBar(
title: OnReactive( // It reactive to routeData
() => Builder( // Needed only to get a child BuildContext
builder: (context) {
final location = context.routeData.location;
return Text('Routing to: $location');
},
),
),
),
body: routeOutlet,
);
},
routes: {
'/': (_) => Page1(),
'/:id': (data) => Page1(id: data.pathParam['id']),
'/page12': (_) => Page12(),
},
)
},
);
Inside widget tree, you can get the router outlet widget using
context.routerOutlet
RouteWidget can be just used to add custom page transition animation.
In the following example Page1 will be animated using the custom definition, whereas all other pages will use the default animation.
final myNavigator = NavigationBuilder.create(
// Default transition
transitionDuration: RM.transitions.leftToRight(),
routes: {
'/': (_) => HomePage(),
'/Page1': (_) => RouteWidget(
builder: (_) => Page1(),
// You can use one of the predefined transitions
transitionsBuilder: (context, animation, secondAnimation, child) {
// Custom transition implementation
return ...;
},
),
'/page2': (_) => Page2(),
},
);
See Also RouteData and NavigationBuilder
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatelessWidget
- RouteWidget
- Available extensions
Constructors
-
RouteWidget({Widget builder(Widget routerOutlet)?, Map<
String, Widget Function(RouteData data)> routes = const {}, Widget transitionsBuilder(BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation, Widget child)?, bool? delegateImplyLeadingToParent}) - Widget use to define sub routes or just for better organization or add custom transition to a particular route.
Properties
- builder → Widget Function(Widget routerOutlet)?
-
Used to wrap the the router outlet widget inside another widget.
final
- delegateImplyLeadingToParent → bool?
-
Weather to delegate the ImplyLeading used in Scaffold to parent route
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- isInitialized → List
-
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- makeRefreshable → Widget
-
Available on Widget?, provided by the WidgetExtension extension
Make your any widget refreshable with RefreshIndicator on topno setter - route ↔ Widget
-
latefinal
- routeLocation → String
-
latefinal
- routePath → String
-
latefinal
- routePathResolver → ResolvePathRouteUtil
-
latefinal
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
transitionsBuilder
→ Widget Function(BuildContext context, Animation<
double> animation, Animation<double> secondaryAnimation, Widget child)? -
Define a transition builder to be used for the sub route.
final
Methods
-
addMaterialWidget(
) → Material -
Available on Widget, provided by the GenericExtensions extension
-
addTooltipWidget(
String toolTip) → Tooltip -
Available on Widget, provided by the GenericExtensions extension
-
animate(
{Key? key, List< Effect> ? effects, AnimateCallback? onInit, AnimateCallback? onPlay, AnimateCallback? onComplete, bool? autoPlay, Duration? delay, AnimationController? controller, Adapter? adapter, double? target, double? value}) → Animate -
Available on Widget, provided by the AnimateWidgetExtensions extension
Wraps the target Widget in an Animate instance, and returns the instance for chaining calls. Ex.myWidget.animate()is equivalent toAnimate(child: myWidget). -
borderRadius(
[BorderRadiusGeometry? borderRadius]) → Widget -
Available on Widget, provided by the GenericExtensions extension
-
boxDecoration(
[BoxDecoration? boxDecoration]) → Widget -
Available on Widget, provided by the GenericExtensions extension
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
override
-
center(
{double? heightFactor, double? widthFactor}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
set parent widget in center -
colorFilter(
[ColorFilter? colorFilter]) → Widget -
Available on Widget, provided by the GenericExtensions extension
set parent widget in center -
copyWith(
Widget builder(Widget child)?) → RouteWidget -
cornerRadiusWithClipRRect(
double radius) → ClipRRect -
Available on Widget?, provided by the WidgetExtension extension
add corner radius -
cornerRadiusWithClipRRectOnly(
{int bottomLeft = 0, int bottomRight = 0, int topLeft = 0, int topRight = 0}) → ClipRRect -
Available on Widget?, provided by the WidgetExtension extension
add custom corner radius each side -
createElement(
) → StatelessElement -
Creates a StatelessElement to manage this widget's location in the tree.
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
-
expand(
{int flex = 1}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
add Expanded to parent widget -
fit(
{BoxFit? fit, AlignmentGeometry? alignment}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
add FittedBox to parent widget -
flexible(
{int flex = 1, FlexFit? fit}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
add Flexible to parent widget -
initialize(
) → Map< String, RouteSettingsWithChildAndData> ? -
launch<
T> (BuildContext context, {bool isNewTask = false, PageRouteAnimation? pageRouteAnimation, Duration? duration, String? routeName, Object? routeArguments}) → Future< T?> -
Available on Widget?, provided by the WidgetExtension extension
Launch a new screen -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onTap(
Function? function, {BorderRadius? borderRadius, Color? splashColor, Color? hoverColor, Color? highlightColor, Color? focusColor, WidgetStateProperty< Color?> ? overlayColor}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
add tap to parent widget -
opacity(
{required double opacity, int durationInSecond = 1, Duration? duration}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
add opacity to parent widget -
paddingAll(
double padding) → Padding -
Available on Widget?, provided by the WidgetExtension extension
return padding all -
paddingBottom(
double bottom) → Padding -
Available on Widget?, provided by the WidgetExtension extension
return padding bottom -
paddingDirectional(
{double start = 0.0, double top = 0.0, double end = 0.0, double bottom = 0.0}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
-
paddingLeft(
double left) → Padding -
Available on Widget?, provided by the WidgetExtension extension
return padding left -
paddingOnly(
{double top = 0.0, double left = 0.0, double bottom = 0.0, double right = 0.0}) → Padding -
Available on Widget?, provided by the WidgetExtension extension
return custom padding from each side -
paddingRight(
double right) → Padding -
Available on Widget?, provided by the WidgetExtension extension
return padding right -
paddingSymmetric(
{double vertical = 0.0, double horizontal = 0.0}) → Padding -
Available on Widget?, provided by the WidgetExtension extension
return padding symmetric -
paddingTop(
double top) → Padding -
Available on Widget?, provided by the WidgetExtension extension
return padding top -
rotate(
{required double angle, bool transformHitTests = true, Offset? origin}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
add rotation to parent widget -
scale(
{required double scale, Offset? origin, AlignmentGeometry? alignment, bool transformHitTests = true}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
add scaling to parent widget -
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
tooltip(
{required String msg}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
-
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
-
translate(
{required Offset offset, bool transformHitTests = true, Key? key}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
add translate to parent widget -
validate(
{Widget value = const SizedBox()}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
Validate given widget is not null and returns given value if null. -
visible(
bool visible, {Widget? defaultWidget}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
set visibility -
withHeight(
double height) → SizedBox -
Available on Widget?, provided by the WidgetExtension extension
With custom height -
withRoundedCorners(
{Color backgroundColor = whiteColor, BorderRadius borderRadius = const BorderRadius.all(Radius.circular(8.0)), LinearGradient? gradient, BoxBorder? border, List< BoxShadow> ? boxShadow, DecorationImage? decorationImage, BoxShape boxShape = BoxShape.rectangle}) → Container -
Available on Widget?, provided by the WidgetExtension extension
-
withScroll(
{ScrollPhysics? physics, EdgeInsetsGeometry? padding, Axis scrollDirection = Axis.vertical, ScrollController? controller, DragStartBehavior dragStartBehavior = DragStartBehavior.start, bool? primary, required bool reverse}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
-
withShaderMask(
List< Color> colors, {BlendMode blendMode = BlendMode.srcATop}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
Wrap with ShaderMask widget -
withShaderMaskGradient(
Gradient gradient, {BlendMode blendMode = BlendMode.srcATop}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
Wrap with ShaderMask widget Gradient -
withShadow(
{Color bgColor = whiteColor, Color shadowColor = Colors.black12, dynamic blurRadius = 10.0, dynamic spreadRadius = 0.0, Offset offset = const Offset(0.0, 0.0), LinearGradient? gradient, BoxBorder? border, DecorationImage? decorationImage, BoxShape boxShape = BoxShape.rectangle}) → Container -
Available on Widget?, provided by the WidgetExtension extension
-
withSize(
{double width = 0.0, double height = 0.0}) → SizedBox -
Available on Widget?, provided by the WidgetExtension extension
With custom height and width -
withTooltip(
{required String msg}) → Widget -
Available on Widget?, provided by the WidgetExtension extension
Validate given widget is not null and returns given value if null. -
withVisibility(
bool visible, {Widget? replacement, bool maintainAnimation = false, bool maintainState = false, bool maintainSize = false, bool maintainSemantics = false, bool maintainInteractivity = false}) → Visibility -
Available on Widget?, provided by the WidgetExtension extension
set widget visibility -
withWidth(
double width) → SizedBox -
Available on Widget?, provided by the WidgetExtension extension
With custom width
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited