Skip to content

Instantly share code, notes, and snippets.

@jinyongp
Last active June 28, 2023 12:37
Show Gist options
  • Save jinyongp/88bf678d41cdd472009b50585f45304b to your computer and use it in GitHub Desktop.
Save jinyongp/88bf678d41cdd472009b50585f45304b to your computer and use it in GitHub Desktop.
Flutter Simple Navigation \w StatelessWidget, StatefulWidget
import 'package:flutter/material.dart';
void main() {
runApp(const MainApp());
}
class MainApp extends StatelessWidget {
const MainApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
debugShowCheckedModeBanner: false,
home: FirstStatelessPage(),
);
}
}
class FirstStatelessPage extends StatelessWidget {
const FirstStatelessPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Stateless First Page')),
body: Center(
child: ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const SecondStatefulPage()),
);
},
child: const Text('Go to Second Stateful Page'),
),
),
);
}
}
class SecondStatefulPage extends StatefulWidget {
const SecondStatefulPage({super.key});
@override
State<SecondStatefulPage> createState() => _SecondStatefulPageState();
}
class _SecondStatefulPageState extends State<SecondStatefulPage> {
var counter = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Stateful Second Page')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Counter: $counter', style: const TextStyle(fontSize: 20)),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () {
setState(() {
counter++;
});
},
child: const Text('+'),
),
const SizedBox(width: 10),
ElevatedButton(
onPressed: () {
setState(() {
counter--;
});
},
child: const Text('-'),
),
],
),
ElevatedButton(
onPressed: () {
Navigator.pop(context);
},
child: const Text('Go to First Stateless Page'),
),
],
),
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment