Flutter dersleri #5 Verileri Yeni Bir Ekrana Gönderme

Rumexus

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


Verileri Yeni Bir Ekrana Gönderme​

Genellikle, yalnızca yeni bir ekrana gitmekle kalmaz, aynı zamanda verileri ekrana da iletirsiniz. Örneğin, dokunulan öğe hakkında bilgi aktarmak isteyebilirsiniz.

Önemli:
Ekranlar yalnızca widget'lardır. Bu örnekte, yapılacaklar listesini oluşturun. Bir todo öğesine dokunduğunuz zaman, todo hakkında verilecek bilgiyi görüntüleyen yeni bir ekrana gidilmesini sağlar.


6OfL8I.gif


Yapılacaklar Sınıfı Tanımlayın

6OfL8I.gif


İlk olarak, todolar'ı temsil etmek için bir yola ihtiyacınız var. Bu örnekte, iki veri parçası içeren bir sınıf oluşturun: başlık ve açıklama

Kod:
class Todo {
    final String başlık;
    final String aciklama;
    Todo(this.baslik, this.aciklama);
}

6OfL8I.gif


Yapılacaklar Listesi Oluşturma

6OfL8I.gif


Todo listesini oluştur:

Kod:
final todos = List<Todo>.generate(
    20,
    (i) => Todo(
      'Todo $i',
      'Todo $ i için yapılması gerekenler hakkında bir açıklama',
 ),
);

ListView kullanarak yapılacaklar listesini görüntüleme:

Kod:
ListView.builder(
   itemCount: todos.length,
   itemBuilder: (context, İndex) {
     return ListTile(
       title: Text(Toros[İndex].başlık),
  );
 },
);

6OfL8I.gif


Yapılacak Bilgiler İçin Ekran Oluşturma

6OfL8I.gif


Şimdi ikinci ekran oluşturun. Ekran başlığı yapılacak bölümün başlığını içerir ve ekranın gövdesi açıklamayı gösterir. Ayrıntı ekranı normal bir StatelessWidget olduğundan, kullanıcının kullanıcı arayüzüne bir Todo girmesini isteyin. Ardından, verilen todo'yu kullanarak kullanıcı arayüzünü oluşturun.

Kod:
class DetailScreen extends StatelessWidget {
   //Yapılacak olan bir alan bildirin. 
   final Todo todo;
   //Yapıcıda, bir Todo gerektirir. 
   DetailScreen ({key: key);
  this.todo}) : super.(key: key);
        [USER=931120]Override[/USER]
       Widget build(BuildContext context) {
    //Kullanıcı arayüzünü oluşturmak için Yapılacaklar'ı kullanın. 
         return Scaffold(
          appBar: AppBar(
            title: Text(todo.baslik),
         ),
         body: Padding(
          padding: EdgeInsest.all(16.0),
          child: Text(todo.aciklama),
   ),
  );
 }
}

6OfL8I.gif


Verileri Ayrıntı Ekranına Gidin Ve Aktarın

6OfL8I.gif


Bir DetailScreen takılıyken Gezinme işlemini gerçekleştirmeye hazırsınız. Bu örnekte, kullanıcı listede bir yapılacaklar listesine dokunduğunda DetailScreen'e gidin. Todo'yu DetailScreen'e aktarın. Kullanıcının dokunmasını yakalamak için, ListTile widget'ı için bir onTap () geri çağrısı yazın. OnTap () geri çağrısında Navigator.push () yöntemini kullanın.

Kod:
ListView.builder(
  itemCount: todos.length,
  itemBuilder: (context, İndex) {
     return ListTile(
        title: Text(todos[İndex].baslik),
        //Bir kullanıcı ListTile öğesine dokunduğunda, DetailScreen'e gidin. 
       //Sadece bir DetailScreen oluşturmakla kalmayacağınıza dikkat edin,
      // mevcut todo'yu ona aktarıyorsunuz. 
       onTap: () {
         Navigator.push(
           context,
           MaterialPageRoute(
           builder: (context) =>
DetailScreen(todo: todos[İndex]),
     ),
    );
   },
  );
 },
);


6OfL8I.gif


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

6OfL8I.gif
 
Son düzenleme:

Sort

Katılımcı Üye
14 Eki 2019
968
79
Cevap: Flutter dersleri #5 Verileri yeni bir ekrana gönderme

Ellerinize Emeğinize Sağlık Hocam
 

'PedroDavis

Kıdemli Üye
24 Haz 2015
2,336
190
112
Elinize sağlık Rumexus hocam, yine harikalar yaratıyorsunuz.
 
Moderatör tarafında düzenlendi:
Ü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.