An Interest In:
Web News this Week
- March 29, 2024
- March 28, 2024
- March 27, 2024
- March 26, 2024
- March 25, 2024
- March 24, 2024
- March 23, 2024
Flutter da bir nceki ekrana nasl veri gnderilir?
Baz durumlarda bir ekrandaki verileri baka bir ekrana dndrmek isteyebilirsiniz. rnein, bir kullancya iki seenek sunan yeni bir ekrannzn olduunu varsayalm. Kullanc bir seenee tkladnda, bu bilgi zerinde hareket edebilmesi iin kullancnn seimiyle ilgili ilk ekrann bilgilendirmek isteyebilirsiniz.
Bunu Navigator.pop()
method'unu kullanarak yapabiliriz:
RNEK
1. Ana ekran tanmlayn
Bu rnekte:
Ana ekranda bir buton grntlenir. Butona tklanldnda, SelectionScreen isimli ekran alr.
class HomeScreen extends StatelessWidget { const HomeScreen({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Returning Data Demo'), ), body: const Center( child: SelectionButton(), ), ); }}
2. Tklanldnda SelectionScreen
ekrann aan SelectionButton'u
oluturun
class SelectionButton extends StatelessWidget { const SelectionButton({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return ElevatedButton( onPressed: () { _navigateAndDisplaySelection(context); }, child: const Text('Pick an option, any option!'), ); } void _navigateAndDisplaySelection(BuildContext context) async { final result = await Navigator.push( context, MaterialPageRoute(builder: (context) => const SelectionScreen()), ); }}
3. ki buton ieren bir SelectionScreen ekrann oluturun
Kullanc bir butona tkladnda seim ekrann kapanr ve ana ekrana kullancnn hangi butona tkladnn bilgisi iletilir.
class SelectionScreen extends StatelessWidget { const SelectionScreen({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Pick an option'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Padding( padding: const EdgeInsets.all(8.0), child: ElevatedButton( onPressed: () { }, child: const Text('Yep!'), ), ), Padding( padding: const EdgeInsets.all(8.0), child: ElevatedButton( onPressed: () { }, child: const Text('Nope.'), ), ) ], ), ), ); }}
- Yep butonuna tklanldnda SelectionScreen ekrann kapatn
Verileri ilk ekrana dndrmek iin, result olarak adlandrlan istee bal ikinci bir bamsz deikeni kabul eden Navigator.pop()
method'unu kullanabilirsiniz.
Yep button
Bu kod butona tklanldnda SelectionScreen ekrann kapatr ve HomeScreen ekranna 'Yep!' metnini gnderir.
ElevatedButton( onPressed: () { Navigator.pop(context, 'Yep!'); }, child: const Text('Yep!'),)
Nope button
Bu kod butona tklanldnda SelectionScreen ekrann kapatr ve HomeScreen ekranna 'Nope.' metnini gnderir.
ElevatedButton( onPressed: () { Navigator.pop(context, 'Nope.'); }, child: const Text('Nope.'),)
5. Seimle birlikte ana ekranda bir snackbar gsterin
Deerlerimizi dndrdmze gre artk, SelectionButton'da _navigateAndDisplaySelection() yntemini kullanarak sonucu grntleyen bir snackbar gsterebiliriz:
SelectionScreen ekrann kapatrken gnderdiimiz deerler aadaki result deikenine depolanr.
void _navigateAndDisplaySelection(BuildContext context) async { final result = await Navigator.push( context, MaterialPageRoute(builder: (context) => const SelectionScreen()), ); ScaffoldMessenger.of(context) ..removeCurrentSnackBar() ..showSnackBar(SnackBar(content: Text('$result')));}
Bu yazda Navigator.pop()
yntemini kullanarak bir st ekrandan bir nceki ekrana nasl deer gnderebileceimizi rendik.
Original Link: https://dev.to/gulsenkeskin/flutter-da-onceki-ekrana-nasil-veri-dondurulur-5482
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To