Tekrar kullanılabilirlik
- Flutter kursu
- Orta seviye
- Ders 74/99
- 4 dk
Aynı widget'ı birden çok ekranda kullanmayı öğrenirsin.
Tekrar kullanılabilirlik
Bir özel widget'ı bir kez yazıp birçok ekranda kullanabilirsin. Aynı Baslik sınıfı hem AnaEkran'da hem ProfilEkran'da kullanılabilir; bu, kod tekrarını önler ve tutarlılık sağlar. Widget'ı ayrı bir dosyaya koyup import ile çekerek tüm projede paylaşabilirsin.
class Baslik extends StatelessWidget {
final String yazi;
const Baslik({super.key, required this.yazi});
@override
Widget build(BuildContext context) => Text(yazi);
}
class AnaEkran extends StatelessWidget {
const AnaEkran({super.key});
@override
Widget build(BuildContext context) => Baslik(yazi: 'Ana');
}Ayrı dosyada widget tanımlama
Bir widget'ı kendi dosyasına koyduktan sonra, kullanacağın dosyanın başına import 'dosya_yolu.dart'; yazarsın. Dart, dosya adını bir kütüphane adı gibi ele alır. Böylece proje boyunca aynı widget sınıfına erişirsin.
// widgets/baslik.dart
class Baslik extends StatelessWidget {
// ...
}
// ekrana_ekran.dart
import 'widgets/baslik.dart';
class AnaEkran extends StatelessWidget {
// Baslik burada kullanılabilir
}Uygulama Baslik widget'ını yeniden kullan
Baslik adında StatelessWidget tanımla: final String yazi alanı required olsun ve build metodu Text(yazi) döndürsün. Sonra AnaEkran adında başka bir StatelessWidget tanımla; build metodu Baslik(yazi: 'Ana') döndürsün. main içinde 'hazir' yazdır.
Başlangıç kodu
import 'package:flutter/widgets.dart';
// Baslik StatelessWidget tanımla
// final String yazi (required)
// build Text(yazi) döndürsün
// AnaEkran StatelessWidget tanımla
// AnaEkran build metodu Baslik widget'ını kullansın
void main() {
// 'hazir' yazdır
}Örnek çözüm
import 'package:flutter/widgets.dart';
class Baslik extends StatelessWidget {
final String yazi;
const Baslik({super.key, required this.yazi});
@override
Widget build(BuildContext context) {
return Text(yazi);
}
}
class AnaEkran extends StatelessWidget {
const AnaEkran({super.key});
@override
Widget build(BuildContext context) {
return Baslik(yazi: 'Ana');
}
}
void main() {
print('hazir');
}Beklenen çıktı
hazir
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir widget'ı başka dosyada kullanmak için ne yapılır?
- http.get çağrısı yapmak
- jsonDecode yapmak
- Widget'ı yeniden yazmak
- import ile dosyayı çekmek Doğru cevap
Açıklama: Ayrı dosyadaki bir widget'ı kullanmak için import ile dosyayı içe aktarırsın. Yeniden yazmak tekrara yol açar, http.get ağ isteğidir, jsonDecode JSON çözmek içindir; bunlar dosya paylaşımıyla ilgili değildir.
2 Dosyayı içe aktar
// ana_ekran.dart
____
class AnaEkran extends StatelessWidget {
// Baslik burada kullanılır
}
// ana_ekran.dart
import 'widgets/baslik.dart'
class AnaEkran extends StatelessWidget {
// Baslik burada kullanılır
}
Açıklama: Dart'ta bir dosyayı içe aktarmak için import kullanılır. export başka kütüphanelere aktarma içindir, require ve include Dart anahtar kelimeleri değildir.
3 Tekrar kullanılabilirlik parçaları
| Kavram | Anlamı |
|---|---|
import |
dosyayı içe aktarma |
ayrı dosya |
widget'ın kütüphanesi |
aynı sınıf |
birden çok ekranda kullanım |
kod tekrarı |
önlünen sorun |