XAppBar class
A highly configurable wrapper around Flutter's built-in AppBar, providing extended flexibility for common UI requirements.
Features:
- Text-based title via title or full custom widget using child.
- Custom back button via backButton or default Material back button.
- Custom actions via actions.
- Custom back-navigation handler via onTapBack.
- Adjustable toolbar height via toolbarHeight.
- Configurable background color via backgroundColor.
- Auto system overlay style based on background luminance.
Title precedence:
- If child is provided, it is used as the title widget.
- Otherwise, title is displayed using titleTextStyle.
Back button behavior:
- If backButton is provided, it becomes the leading widget.
- If onTapBack is provided, it is executed when back button is pressed.
- If neither is provided, default back button calls
Navigator.pop().
Implements PreferredSizeWidget for use in Scaffold.appBar.
- Inheritance
- Implemented types
Constructors
-
XAppBar({Key? key, String? title, Widget? child, TextStyle? titleTextStyle, VoidCallback? onTapBack, List<
Widget> ? actions, bool isTitleCenter = true, double? toolbarHeight, Color? backgroundColor, Widget? backButton, Widget? leading, bool automaticallyImplyLeading = true, bool automaticallyImplyActions = true, Widget? flexibleSpace, PreferredSizeWidget? bottom, double? elevation, double? scrolledUnderElevation, ScrollNotificationPredicate notificationPredicate = defaultScrollNotificationPredicate, Color? shadowColor, Color? surfaceTintColor, ShapeBorder? shape, Color? foregroundColor, IconThemeData? iconTheme, IconThemeData? actionsIconTheme, bool primary = true, bool excludeHeaderSemantics = false, double? titleSpacing, double toolbarOpacity = 1.0, double bottomOpacity = 1.0, double? leadingWidth, TextStyle? toolbarTextStyle, SystemUiOverlayStyle? systemOverlayStyle, bool forceMaterialTransparency = false, bool useDefaultSemanticsOrder = true, Clip? clipBehavior, EdgeInsetsGeometry? actionsPadding, bool animateColor = false}) -
const
Properties
-
actions
→ List<
Widget> ? -
final
- actionsIconTheme → IconThemeData?
-
final
- actionsPadding → EdgeInsetsGeometry?
-
final
- animateColor → bool
-
final
- automaticallyImplyActions → bool
-
final
- automaticallyImplyLeading → bool
-
final
- backButton → Widget?
-
final
- backgroundColor → Color?
-
final
- bottom → PreferredSizeWidget?
-
final
- bottomOpacity → double
-
final
- child → Widget?
-
final
- clipBehavior → Clip?
-
final
- elevation → double?
-
final
- excludeHeaderSemantics → bool
-
final
- flexibleSpace → Widget?
-
final
- forceMaterialTransparency → bool
-
final
- foregroundColor → Color?
-
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- iconTheme → IconThemeData?
-
final
- isTitleCenter → bool
-
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- leading → Widget?
-
final
- leadingWidth → double?
-
final
- notificationPredicate → ScrollNotificationPredicate
-
final
- onTapBack → VoidCallback?
-
final
- preferredSize → Size
-
The size this widget would prefer if it were otherwise unconstrained.
no setteroverride
- primary → bool
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- scrolledUnderElevation → double?
-
final
- shadowColor → Color?
-
final
- shape → ShapeBorder?
-
final
- surfaceTintColor → Color?
-
final
- systemOverlayStyle → SystemUiOverlayStyle?
-
final
- title → String?
-
final
- titleSpacing → double?
-
final
- titleTextStyle → TextStyle?
-
final
- toolbarHeight → double?
-
final
- toolbarOpacity → double
-
final
- toolbarTextStyle → TextStyle?
-
final
- useDefaultSemanticsOrder → bool
-
final
Methods
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
override
-
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
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
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