ActionIconTheme class
An inherited widget that overrides the default icon of BackButtonIcon, CloseButtonIcon, DrawerButtonIcon, and EndDrawerButtonIcon in this widget's subtree.
This example shows how to define custom builders for drawer and back buttons.
To see it in action, copy and run this code snippet on DartPad.
import 'package:material_ui/material_ui.dart';
/// Flutter code sample for [ActionIconTheme].
void main() {
runApp(const ActionIconThemeExampleApp());
}
class _CustomEndDrawerIcon extends StatelessWidget {
const _CustomEndDrawerIcon();
@override
Widget build(BuildContext context) {
final MaterialLocalizations localization = MaterialLocalizations.of(
context,
);
return Icon(
Icons.more_horiz,
semanticLabel: localization.openAppDrawerTooltip,
);
}
}
class _CustomDrawerIcon extends StatelessWidget {
const _CustomDrawerIcon();
@override
Widget build(BuildContext context) {
final MaterialLocalizations localization = MaterialLocalizations.of(
context,
);
return Icon(
Icons.segment,
semanticLabel: localization.openAppDrawerTooltip,
);
}
}
class ActionIconThemeExampleApp extends StatelessWidget {
const ActionIconThemeExampleApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
actionIconTheme: ActionIconThemeData(
backButtonIconBuilder: (BuildContext context) {
return const Icon(Icons.arrow_back_ios_new_rounded);
},
drawerButtonIconBuilder: (BuildContext context) {
return const _CustomDrawerIcon();
},
endDrawerButtonIconBuilder: (BuildContext context) {
return const _CustomEndDrawerIcon();
},
),
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatelessWidget {
const MyHomePage({super.key, required this.title});
final String title;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text(title)),
drawer: Drawer(
child: Column(
children: <Widget>[
TextButton(child: const Text('Drawer Item'), onPressed: () {}),
],
),
),
body: const Center(child: NextPageButton()),
);
}
}
class NextPageButton extends StatelessWidget {
const NextPageButton({super.key});
@override
Widget build(BuildContext context) {
return ElevatedButton.icon(
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute<MySecondPage>(
builder: (BuildContext context) {
return const MySecondPage();
},
),
);
},
icon: const Icon(Icons.arrow_forward),
label: const Text('Next page'),
);
}
}
class MySecondPage extends StatelessWidget {
const MySecondPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Second page')),
endDrawer: const Drawer(),
);
}
}
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- ProxyWidget
- InheritedWidget
- InheritedTheme
- ActionIconTheme
Constructors
- ActionIconTheme({Key? key, required ActionIconThemeData data, required Widget child})
-
Creates a theme that overrides the default icon of BackButtonIcon,
CloseButtonIcon, DrawerButtonIcon, and EndDrawerButtonIcon in this
widget's subtree.
const
Properties
- child → Widget
-
The widget below this widget in the tree.
finalinherited
- data → ActionIconThemeData
-
Specifies the default icon overrides for descendant BackButtonIcon,
CloseButtonIcon, DrawerButtonIcon, and EndDrawerButtonIcon widgets.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
createElement(
) → InheritedElement -
Inflates this configuration to a concrete instance.
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
-
updateShouldNotify(
covariant ActionIconTheme oldWidget) → bool -
Whether the framework should notify widgets that inherit from this widget.
override
-
wrap(
BuildContext context, Widget child) → Widget -
Return a copy of this inherited theme with the specified
child.override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
of(
BuildContext context) → ActionIconThemeData? - Retrieves the ActionIconThemeData from the closest ancestor ActionIconTheme widget.