Flutter dersleri #4 Adlandırılmış Rotalarda Gezinme

Rumexus

Kıdemli Üye
26 Ocak 2016
2,157
323
hdoWmv.gif


Adlandırılmış Rotalarda Gezinme

Yeni bir ekrana git ve geri gel tarifinde, yeni bir rota oluşturup Navigator'a iterek yeni bir ekrana nasıl gideceğinizi öğrendiniz. Ancak, uygulamanızın bir çok bölümünde aynı ekrana gitmeniz gerekiyorsa, bu yaklaşım kod çoğaltmasına neden olabilir. Çözüm, adlandırılmış bir rota tanımlamak ve Navigator için adlandırılmış rotayı kullanmaktır. Adlandırılmış yollarla çalışmak için Navigator.pushNamed () işlevini kullanın.

6OfL8I.gif


İki Ekran Oluşturun

6OfL8I.gif


İlk olarak, çalışmak için iki ekran oluşturun. İlk ekranda, ikinci ekrana giden bir düğme bulunur. İkinci ekranda birinciye geri giden bir düğme bulunur.

Kod:
 class IlkEkran extends StatelessWidget {
      @ovveride/n   Widget build(BuildContext
context) {
      return Scaffold(/n     appBar: AppBar(/n
title: Text('İlk Ekran'),
       ),
        body: Center(
          child: RaisedButton(
            child: Text('Ekranı Yükle'),
            onPressed: () {
              // Dokunulduğunda ikinci ekrana gidin. 
      },
     ),
    ),
   );
  }
 }
 class IkinciEkran extends StatelessWidget {
   [USER=931120]Override[/USER]
    Widget build(BuildContext context) {
    return Scaffold(
     appBar: appBar(
       title: Text('İkinci Ekran'),
      ),
      body: Center(
       child: RaisedButton(
        onPressed: () {
         // Dokunulduğunda ilk ekrana geri dönün. 
                  },
                  child: Text('Geri Dön!'),
      ),
     ),
    );
   }
  }

6OfL8I.gif


Güzergahları Tanımlayın

6OfL8I.gif


Ardından, MaterialApp yapıcısına ek özellikler sağlayarak yolları tanımlayın: initialRoute ve yolların kendileri. initialRoute özelliği, uygulamanın hangi yolla başlaması gerektiğini tanımlar. Route özelliği, bu adlandırılmış yolları ve bu rotalara giderken oluşturulacak widget'ları tanımlar.

Kod:
 MaterialApp(
   // Uygulamayı "/" adlı rota ile başlatın. Bu
durumda, uygulamaya başlar
   // IlkEkran widgetında
   initialRoute: '/',
   routes: {
      //"/" Yoluna giderken IlkEkran widget'ını
oluşturun. 
    '/': (context) => IlkEkran (),
    // "/ İkinci" yoluna giderken IkinciEkran widget'ını oluşturun. 
     '/ikinci': (context) => IkinciEkran(),
    },
   );

Önemli: initialRoute kullanırken, bir home özelliği tanımlayın.

6OfL8I.gif


İkinci Ekrana Gidin

6OfL8I.gif


Widget'lar ve rotalar yerinde olduğunda,
Navigator.pushNamed () yöntemini kullanarak gezinmeye tetikleyin. Bu, Flutter'a yollar tablosunda tanımlanan widget'ı oluşturmasını ve ekranı başlamasını söyler. IlkEkran widget'ının build ()
yönteminde, onPressed () geri aramasını güncelleyin:


Kod:
//`IlkEkran` widget'ında
  onPressed: () {
     // Adlandırılmış bir rota kullanarak ikinci ekrana gidin. 

  Navigator.pushNamed( context,'/second');
  }

6OfL8I.gif


İlk Ekrana Dönün

6OfL8I.gif


İlk ekrana dönmek için Navigator.pop () işlevini kullanın.

Kod:
// IkinciEkran widget'ında
    onPressed: () {
      // Geçerli rotayı açarak İlk ekrana geri dönün
      // yığın dışı. 
      Navigator.pop(context);
    }

6OfL8I.gif


4. Dersimizde bu şekilde bitirdik umarım düzgün bir şekilde anlatıp bir şeyler öğretebilmişimdir. İyi forumlar.

6OfL8I.gif
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.