AdoptAWidget: WillPopScope (#69563)
* Update WillPopScope API Docs * Update WillPopScope API Docs * Update WillPopScope API Docs template fix * Refactoring dartpad sample * Refactoring dartpad sample * Remove trailing spaces * Minor build fix * Remove space * Change the dartpad sample and other minor changes * Change the dartpad example * Remove trailing character * refactor code to dart preamble * adding uncleared variable * adding uncleared variable * Implemented requested changes * Implemented requested changes * empty commit * minor changes Co-authored-by: Chinmay Kabi <chinmaykabi@gmail.com>
This commit is contained in:
parent
50dc84bc17
commit
6f70a29c36
@ -9,10 +9,86 @@ import 'routes.dart';
|
|||||||
/// Registers a callback to veto attempts by the user to dismiss the enclosing
|
/// Registers a callback to veto attempts by the user to dismiss the enclosing
|
||||||
/// [ModalRoute].
|
/// [ModalRoute].
|
||||||
///
|
///
|
||||||
|
/// {@tool snippet --template=stateful_widget}
|
||||||
|
///
|
||||||
|
/// Whenever the back button is pressed, you will get a callback at [onWillPop],
|
||||||
|
/// which returns a [Future]. If the [Future] returns true, the screen is
|
||||||
|
/// popped.
|
||||||
|
///
|
||||||
|
/// ```dart
|
||||||
|
/// bool shouldPop = true;
|
||||||
|
/// @override
|
||||||
|
/// Widget build(BuildContext context) {
|
||||||
|
/// return WillPopScope (
|
||||||
|
/// onWillPop: () async {
|
||||||
|
/// return shouldPop;
|
||||||
|
/// },
|
||||||
|
/// child: Text('WillPopScope sample'),
|
||||||
|
/// );
|
||||||
|
/// }
|
||||||
|
/// ```
|
||||||
|
/// {@end-tool}
|
||||||
|
///
|
||||||
|
/// {@tool dartpad --template=stateful_widget_material}
|
||||||
|
/// ```dart
|
||||||
|
/// bool shouldPop = true;
|
||||||
|
/// @override
|
||||||
|
/// Widget build(BuildContext context) {
|
||||||
|
/// return WillPopScope(
|
||||||
|
/// onWillPop: () async {
|
||||||
|
/// return shouldPop;
|
||||||
|
/// },
|
||||||
|
/// child: Scaffold(
|
||||||
|
/// appBar: AppBar(
|
||||||
|
/// title: Text("Flutter WillPopScope demo"),
|
||||||
|
/// ),
|
||||||
|
/// body: Center(
|
||||||
|
/// child: Column(
|
||||||
|
/// mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
/// children: [
|
||||||
|
/// OutlinedButton(
|
||||||
|
/// child: Text('Push'),
|
||||||
|
/// onPressed: () {
|
||||||
|
/// Navigator.of(context).push(
|
||||||
|
/// MaterialPageRoute(
|
||||||
|
/// builder: (context) {
|
||||||
|
/// return MyStatefulWidget();
|
||||||
|
/// },
|
||||||
|
/// ),
|
||||||
|
/// );
|
||||||
|
/// },
|
||||||
|
/// ),
|
||||||
|
/// OutlinedButton(
|
||||||
|
/// child: Text('shouldPop: $shouldPop'),
|
||||||
|
/// onPressed: () {
|
||||||
|
/// setState(
|
||||||
|
/// () {
|
||||||
|
/// shouldPop = !shouldPop;
|
||||||
|
/// },
|
||||||
|
/// );
|
||||||
|
/// },
|
||||||
|
/// ),
|
||||||
|
/// Text("Push to a new screen, then tap on shouldPop "
|
||||||
|
/// "button to toggle its value. Press the back "
|
||||||
|
/// "button in the appBar to check its behaviour "
|
||||||
|
/// "for different values of shouldPop"),
|
||||||
|
/// ],
|
||||||
|
/// ),
|
||||||
|
/// ),
|
||||||
|
/// ),
|
||||||
|
/// );
|
||||||
|
/// }
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// {@end-tool}
|
||||||
|
///
|
||||||
/// See also:
|
/// See also:
|
||||||
///
|
///
|
||||||
/// * [ModalRoute.addScopedWillPopCallback] and [ModalRoute.removeScopedWillPopCallback],
|
/// * [ModalRoute.addScopedWillPopCallback] and [ModalRoute.removeScopedWillPopCallback],
|
||||||
/// which this widget uses to register and unregister [onWillPop].
|
/// which this widget uses to register and unregister [onWillPop].
|
||||||
|
/// * [Form], which provides an `onWillPop` callback that enables the form
|
||||||
|
/// to veto a `pop` initiated by the app's back button.
|
||||||
|
///
|
||||||
class WillPopScope extends StatefulWidget {
|
class WillPopScope extends StatefulWidget {
|
||||||
/// Creates a widget that registers a callback to veto attempts by the user to
|
/// Creates a widget that registers a callback to veto attempts by the user to
|
||||||
/// dismiss the enclosing [ModalRoute].
|
/// dismiss the enclosing [ModalRoute].
|
||||||
|
Loading…
x
Reference in New Issue
Block a user