AdoptAWidget - Update ActionListener with an example (#69717)

Adds an example to the docs for ActionListener.
diff --git a/packages/flutter/lib/src/widgets/actions.dart b/packages/flutter/lib/src/widgets/actions.dart
index 3460a8b..24974b5 100644
--- a/packages/flutter/lib/src/widgets/actions.dart
+++ b/packages/flutter/lib/src/widgets/actions.dart
@@ -241,6 +241,102 @@
 /// If you listen to an [Action] widget in a widget hierarchy, you should use
 /// this widget. If you are using an [Action] outside of a widget context, then
 /// you must call removeListener yourself.
+///
+/// {@tool dartpad --template=stateful_widget_scaffold_center}
+/// This example shows how ActionListener handles adding and removing of
+/// the [listener] in the widget lifecycle.
+///
+/// ```dart preamble
+/// class ActionListenerExample extends StatefulWidget {
+///   @override
+///   _ActionListenerExampleState createState() => _ActionListenerExampleState();
+/// }
+///
+/// class _ActionListenerExampleState extends State<ActionListenerExample> {
+///   bool _on = false;
+///   late final MyAction _myAction;
+///
+///   @override
+///   void initState() {
+///     super.initState();
+///     _myAction = MyAction();
+///   }
+///
+///   void _toggleState() {
+///     setState(() {
+///       _on = !_on;
+///     });
+///   }
+///
+///   @override
+///   Widget build(BuildContext context) {
+///     return Row(
+///       crossAxisAlignment: CrossAxisAlignment.center,
+///       mainAxisAlignment: MainAxisAlignment.center,
+///       children: <Widget>[
+///         Padding(
+///           padding: const EdgeInsets.all(8.0),
+///           child: OutlinedButton(
+///             onPressed: _toggleState,
+///             child: Text(_on ? 'Disable' : 'Enable'),
+///           ),
+///         ),
+///         _on
+///             ? Padding(
+///                 padding: const EdgeInsets.all(8.0),
+///                 child: ActionListener(
+///                   listener: (Action<Intent> action) {
+///                     if (action.intentType == MyIntent) {
+///                       ScaffoldMessenger.of(context).showSnackBar(SnackBar(
+///                           content: const Text('Action Listener Called'),
+///                       ));
+///                     }
+///                   },
+///                   action: _myAction,
+///                   child: ElevatedButton(
+///                     onPressed: () =>
+///                         ActionDispatcher().invokeAction(_myAction, MyIntent()),
+///                     child: const Text('Call Action Listener'),
+///                   ),
+///                 ),
+///               )
+///             : Container(),
+///       ],
+///     );
+///   }
+/// }
+///
+/// class MyAction extends Action<MyIntent> {
+///   @override
+///   void addActionListener(listener) {
+///     super.addActionListener(listener);
+///     print('Action Listener was added');
+///   }
+///
+///   @override
+///   void removeActionListener(listener) {
+///     super.removeActionListener(listener);
+///     print('Action Listener was removed');
+///   }
+///
+///   @override
+///   void invoke(covariant MyIntent intent) {
+///     notifyActionListeners();
+///   }
+/// }
+///
+/// class MyIntent extends Intent {
+///   const MyIntent();
+/// }
+/// ```
+///
+/// ```dart
+/// Widget build(BuildContext context) {
+///   return ActionListenerExample();
+/// }
+/// ```
+/// {@end-tool}
+///
 @immutable
 class ActionListener extends StatefulWidget {
   /// Create a const [ActionListener].