Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
January 30, 2022 11:36 am GMT

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.'),              ),            )          ],        ),      ),    );  }}
  1. 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.

reference


Original Link: https://dev.to/gulsenkeskin/flutter-da-onceki-ekrana-nasil-veri-dondurulur-5482

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To