Jawaban
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MainScreen(),
);
}
}
class MainScreen extends StatefulWidget {
@override
_MainScreenState createState() => _MainScreenState();
}
class _MainScreenState extends State<MainScreen> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Main Screen'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Counter: $_counter',
style: TextStyle(fontSize: 24),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: _incrementCounter,
child: Text('Increment Counter'),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SecondScreen(counter: _counter),
),
);
},
child: Text('Go to Second Screen'),
),
],
),
),
);
}
}
class SecondScreen extends StatelessWidget {
final int counter;
SecondScreen({required this.counter});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Second Screen'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Counter: $counter',
style: TextStyle(fontSize: 24),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () {
Navigator.pop(context);
},
child: Text('Go back to Main Screen'),
),
],
),
),
);
}
}
Penjelasan:
-
MyApp: Merupakan widget utama aplikasi yang menampilkan
MainScreensebagai layar awal. -
MainScreen: Stateful widget yang mengelola state counter dan menampilkan dua tombol, satu untuk meningkatkan nilai counter dan satu lagi untuk navigasi ke
SecondScreen. -
_MainScreenState: Mengandung logika untuk meningkatkan nilai counter menggunakan
setState. -
SecondScreen: Stateless widget yang menerima nilai counter dari
MainScreenmelalui constructor dan menampilkan nilai tersebut. Layar ini juga memiliki tombol untuk kembali keMainScreen.