DEV Community 👩‍💻👨‍💻

Cover image for Flutter Widget Türleri 💫 🌌 ✨
Gülsen Keskin
Gülsen Keskin

Posted on • Updated on

Flutter Widget Türleri 💫 🌌 ✨

Flutter'da widget'lar, özelliklerine göre birden çok kategoride gruplandırılabilir:

• Platforma özel widget'lar

• Layout(Düzen) widget'ları

• State maintenance widgets (Durum bakım araçları)

• Platformdan bağımsız / temel widget'lar

Platforma özel widget'lar

Flutter'ın belirli platformlara özgü widget'ları vardır - Android veya iOS.

Android'e özel widget'lar, Android OS'nin Material tasarım kılavuzuna uygun olarak tasarlanmıştır. Android'e özel widget'lara Material widget'ları denir.

iOS'a özel widget'lar, Apple'ın İnsan Arayüzü Yönergeleri'ne (Human Interface Guidelines) uygun olarak tasarlanmıştır ve Cupertino widget'ları olarak adlandırılır.

En çok kullanılan material widget'larından bazıları şunlardır:

• Scaffold
• AppBar
• BottomNavigationBar
• TabBar
• TabBarView
• ListTile
• RaisedButton
• FloatingActionButton
• FlatButton
• IconButton
• DropdownButton
• PopupMenuButton
• ButtonBar
• TextField
• Checkbox
• Radio
• Switch
• Slider
• Date & Time Pickers
• SimpleDialog
• AlertDialog

En çok kullanılan Cupertino widget'larından bazıları şunlardır:

• CupertinoButton
• CupertinoPicker
• CupertinoDatePicker
• CupertinoTimerPicker
• CupertinoNavigationBar
• CupertinoTabBar
• CupertinoTabScaffold
• CupertinoTabView
• CupertinoTextField
• CupertinoDialog
• CupertinoDialogAction
• CupertinoFullscreenDialogTransition
• CupertinoPageScaffold
• CupertinoPageTransition
• CupertinoActionSheet
• CupertinoActivityIndicator
• CupertinoAlertDialog
• CupertinoPopupSurface
• CupertinoSlider

Düzen widget'ları

Flutter'da, bir veya daha fazla widget kullanılarak bir widget oluşturulabilir. Birden çok widget'ı tek bir widget'ta oluşturmak için Flutter, düzen özelliği olan çok sayıda widget sağlar. Örneğin, chil widget, Center widget'ı kullanılarak ortalanabilir.

Popüler düzen-layout widget'larından bazıları şunlardır:

Container: background, border ve shadow(gölge) içeren BoxDecoration widget'ları kullanılarak dekore edilmiş dikdörtgen bir kutu.
Center: Child widget'ı ortalar
Row: Child widget'larını yatay doğrultuda yerleştirir.
Column: Child widget'larını dikey doğrultuda yerleştirir.
Stack: Widget'ları birbirinin üzerine yerleştirir.

State maintenance widgets (Durum bakım widget'ları)

Flutter'da tüm widget'lar ya StatelessWidget'tan ya da StatefulWidget'tan türetilir.

StatelessWidget'tan türetilen widget'ın herhangi bir durum bilgisi yoktur, ancak StatefulWidget'tan türetilen widget'lar durum bilgisini içerebilir. Uygulamanın dinamik doğası, widget'ların etkileşimli davranışı ve etkileşim sırasındaki durum değişiklikleri yoluyladır. Örneğin bir sayaç butonuna tıkladığınızda sayacın artması gibi.

Platform bağımsız/ temel widget'lar

Flutter, platformdan bağımsız bir şekilde basit ve karmaşık kullanıcı arayüzü oluşturmak için çok sayıda temel widget sağlar.

Text

Text widget'ı, bir string'i görüntülemek için kullanılır. yazının stili, style özelliği ve TextStyle sınıfı kullanılarak ayarlanabilir.

Bu amaca yönelik örnek kod aşağıdaki gibidir:


Text('Hello World!', style: TextStyle(fontWeight: FontWeight.bold));
Enter fullscreen mode Exit fullscreen mode

Text widget'ı, string'i farklı stille belirtmek için TextSpan türünün alt öğesini(child) kabul eden Text.rich adlı özel bir constructor'a sahiptir.
TextSpan widget'ı özyinelemelidir(recursive) ve TextSpan'ı çocukları olarak kabul eder.

Bu amaca yönelik örnek kod aşağıdaki gibidir:

RichText(
  text: TextSpan(
    text: 'Hello ',
    style: DefaultTextStyle.of(context).style,
    children: const <TextSpan>[
      TextSpan(text: 'bold', style: TextStyle(fontWeight: FontWeight.bold)),
      TextSpan(text: ' world!'),
    ],
  ),
)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

Image description

Text widget'ının aracının en önemli özellikleri şunlardır:

maxLines, int: Gösterilecek maksimum satır sayısı

overflow, TextOverFlow: TextOverFlow sınıfı kullanılarak görsel taşmanın nasıl işlendiğini belirtin.

style, TextStyle: TextStyle sınıfını kullanarak string'in stilini belirtin.

textAlign, TextAlign: TextAlign sınıfını kullanarak sağa, sola, yasla vb. gibi metnin hizalanması

textDirection, TextDirection: Metnin akış yönü, left-to-right veya right-to-left

Image

Image widget'ı, uygulamada bir resmi görüntülemek için kullanılır. Image widget'ı, birden çok kaynaktan görüntü yüklemek için farklı contructor'lar sağlar ve bunlar aşağıdaki gibidir:

• Image - ImageProvider kullanan genel resim yükleyici
• Image.asset - Flutter projesinin varlıklarından (assets) resim yükler
• Image.file - Sistem klasöründen resim yükler
• Image.memory - Resmi bellekten yükler
• Image.Network - Resmi ağdan yükler

Flutter'da bir görüntüyü yüklemek ve görüntülemek için en kolay seçenek, görüntüyü uygulamanın varlıkları (assets) olarak eklemek ve istek üzerine widget'a yüklemektir.

Proje klasörünüzde assets isimli bir klasör oluşturun ve resimlerinizi yükleyin.

pubspec.yaml dosyasındaki asset'leri aşağıda gösterildiği gibi belirtin:

flutter:

assets:

- assets/smiley.png
Enter fullscreen mode Exit fullscreen mode

Resmi görüntüleyin:
Image.asset('assets/smiley.png')

Image description

Image widget'ının en önemli özellikleri şunlardır:

• image, ImageProvider: Yüklenecek resim

• width, double - Resmin Genişliği

• height, double - Resmin yüksekliği

• alignment, AlignmentGeometry - Resmi kendi sınırları içinde hizalar

Resources:

https://api.flutter.dev/flutter/widgets/RichText-class.html
https://www.tutorialspoint.com/flutter/flutter_tutorial.pdf

Top comments (0)

Let's Get Wacky


Use any Linode offering to create something unique or silly in the DEV x Linode Hackathon 2022 and win the Wacky Wildcard category

Join the Hackathon <-