Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'package:flutter/material.dart';
- import 'package:flutter_web_plugins/url_strategy.dart';
- void main() {
- setUrlStrategy(null);
- runApp(const MyApp());
- }
- class MyApp extends StatelessWidget {
- const MyApp({super.key});
- @override
- Widget build(BuildContext context) {
- return const MaterialApp(
- title: 'MyApp',
- color: Colors.black,
- home: MyParentWidget(),
- );
- }
- }
- class MyParentWidget extends StatefulWidget {
- const MyParentWidget({
- super.key,
- });
- @override
- State<MyParentWidget> createState() => _MyParentWidgetState();
- }
- class _MyParentWidgetState extends State<MyParentWidget> {
- @override
- Widget build(BuildContext context) {
- return MyHomePage(
- key: UniqueKey(),
- onBackPressed: () {
- setState(() {});
- },
- );
- }
- }
- class MyHomePage extends StatefulWidget {
- const MyHomePage({
- required this.onBackPressed,
- super.key,
- });
- final VoidCallback onBackPressed;
- @override
- State<MyHomePage> createState() {
- return _MyHomePageState();
- }
- }
- class _MyHomePageState extends State<MyHomePage> {
- bool _changed = false;
- @override
- Widget build(BuildContext context) {
- return WillPopScope(
- onWillPop: () => Future(() {
- widget.onBackPressed();
- return false;
- }),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- Text(
- _textForCurrentState(),
- style: const TextStyle(
- color: Colors.black,
- decoration: TextDecoration.none,
- ),
- ),
- ElevatedButton(
- onPressed: () {
- setState(() {
- _changed = !_changed;
- });
- },
- child: const Text("CHANGE"),
- ),
- ],
- ),
- );
- }
- String _textForCurrentState() {
- return _changed ? "CHANGED" : "NOT CHANGED";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement