Advertisement
Guest User

Code sample

a guest
Dec 6th, 2023
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 1.97 KB | None | 0 0
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_web_plugins/url_strategy.dart';
  3.  
  4. void main() {
  5.   setUrlStrategy(null);
  6.   runApp(const MyApp());
  7. }
  8.  
  9. class MyApp extends StatelessWidget {
  10.   const MyApp({super.key});
  11.  
  12.   @override
  13.   Widget build(BuildContext context) {
  14.     return const MaterialApp(
  15.       title: 'MyApp',
  16.       color: Colors.black,
  17.       home: MyParentWidget(),
  18.     );
  19.   }
  20. }
  21.  
  22. class MyParentWidget extends StatefulWidget {
  23.   const MyParentWidget({
  24.     super.key,
  25.   });
  26.  
  27.   @override
  28.   State<MyParentWidget> createState() => _MyParentWidgetState();
  29. }
  30.  
  31. class _MyParentWidgetState extends State<MyParentWidget> {
  32.   @override
  33.   Widget build(BuildContext context) {
  34.     return MyHomePage(
  35.       key: UniqueKey(),
  36.       onBackPressed: () {
  37.         setState(() {});
  38.       },
  39.     );
  40.   }
  41. }
  42.  
  43. class MyHomePage extends StatefulWidget {
  44.   const MyHomePage({
  45.     required this.onBackPressed,
  46.     super.key,
  47.   });
  48.  
  49.   final VoidCallback onBackPressed;
  50.  
  51.   @override
  52.   State<MyHomePage> createState() {
  53.     return _MyHomePageState();
  54.   }
  55. }
  56.  
  57. class _MyHomePageState extends State<MyHomePage> {
  58.   bool _changed = false;
  59.  
  60.   @override
  61.   Widget build(BuildContext context) {
  62.     return WillPopScope(
  63.       onWillPop: () => Future(() {
  64.         widget.onBackPressed();
  65.         return false;
  66.       }),
  67.       child: Column(
  68.         mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  69.         children: [
  70.           Text(
  71.             _textForCurrentState(),
  72.             style: const TextStyle(
  73.               color: Colors.black,
  74.               decoration: TextDecoration.none,
  75.             ),
  76.           ),
  77.           ElevatedButton(
  78.             onPressed: () {
  79.               setState(() {
  80.                 _changed = !_changed;
  81.               });
  82.             },
  83.             child: const Text("CHANGE"),
  84.           ),
  85.         ],
  86.       ),
  87.     );
  88.   }
  89.  
  90.   String _textForCurrentState() {
  91.     return _changed ? "CHANGED" : "NOT CHANGED";
  92.   }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement