Flutter’da MaterialApp Widget Özellikleri
Flutter’da MaterialApp widget, uygulamanın dış çerçevesini oluşturur. Her ne kadar çok önemli bir widget olsa da, kullanıcı tarafından hiçbir zaman MaterialApp widget’ı görülemez çünkü teknik olarak hiçbir kısmı görünür değildir.
MaterialApp, tüm uygulamayı sarar ve bu uygulamaya bir başlık verme fırsatı verir. Bu sayede işletim sistemi uygulamayı arka plana taşırken bir ada sahip olmuş olur.
Flutter’da MaterialApp widget, ayrıca uygulamanız için varsayılan temayı (yazı tipleri, boyutlar, renkler vb.) uygulayacağınız yerdir. Kapsayıcı bir widget olduğu için uygulamanızın kökü olacaktır.
İsminde bulunan “Material” kelimesi gerçekten de bir tür Google/Android olayı olan Materyal Tasarımına atıfta bulunsa da muhtemelen yanlış adlandırılmıştır. Zira tüm uygulamalar, hatta iOS odaklı uygulamalar bile kökünde bir MaterialApp widget’ına sahip olacaktır. Bu demektir ki uygulamanız daha fazla Android veya daha az iOS gibi bir şey değildir.
Son olarak, MaterialApp widget’ı bir ev özelliğine sahiptir. Yani, birçok özel widget’a sahip olacak olan uygulamanızın hangisinin başlangıç widget’ı olduğunu belirlenecektir.
MaterialApp Widget Property’leri
MaterialApp aşağıdaki property’lere sahiptir:
- action:
- backButtonDispatcher:
- checkerboardRasterCacheImage:
- color: Uygulamada kullanılan ana rengi kontrol eder.
- darkTheme: Uygulamada karanlık tema için tema verileri sağlar.
- debugShowCheckedModeBanner: hata ayıklama başlığının (debug) gösterilip gösterilmeyeceğine yönelik boole bir değer alır.
- debugShowMaterialGird:
- highContrastDarkTheme:
- home: Uygulamanın varsayılan yolunda gösterilecek olan widget’ı alır.
- initialRoute:
- locale:
- localizationsDelegate:
- navigatorObserver:
- onGenerateInitialRoutes:
- onGeneratRoute:
- OnGenerateTitle:
- onUnknownRoute:
- routeInformationParse:
- routeInformationProvider:
- routeDelegate:
- routes:
- shortcuts:
- showPerformanceOverlay:
- showSemantisDebugger:
- supportedLocales:
- theme:
- themeMode:
- title:
Örnek olarak aşağıdaki kodu inceleyebilirsiniz:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import 'package:flutter/material.dart'; void main() => runApp( MaterialApp( home: MainWidget(), title: "Material App", theme: ThemeData(primarySwatch: Colors.deepPurple), debugShowCheckedModeBanner: false, ), ); class MainWidget extends StatelessWidget { const MainWidget({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Material App"), ), floatingActionButton: FloatingActionButton( onPressed: () {}, child: Icon(Icons.access_alarm), ), ); } } |
Çıktı:
Detaylı bilgi için resmi dökmanları takip edebilirsiniz.