DEV Community

Cover image for Scaffold Widget 💫 🌌 ✨
Gülsen Keskin
Gülsen Keskin

Posted on

Scaffold Widget 💫 🌌 ✨

Scaffold widget ✨

MaterialApp widget'ı gibi, Scaffold da (Material yönergelerini takip eden) build'i olabildiğince kolay hale getirmek için tasarlanmış bir widget'dır. MaterialApp widget'ı, uygulamanıza yapılandırma ve işlevsellik sağlar. Scaffold widget'ı da, uygulamanızın yapısını sağlayan widget öğesidir. MaterialApp'i uygulamanızın tesisatı ve elektriği, Scaffold widget'ı ise temeli ve duvarları olarak düşünebilirsiniz.

Flutter belgelerine göre, Scaffold "temel Material Design görsel düzenini" tanımlar, bu da uygulamanızın kolayca bu şekilde görünmesini sağlayabileceği anlamına gelir.

Image description

Bir drawer (bir taraftan animasyon uygulayan ve menüler için yaygın olarak kullanılan bir öğe) ve bir alt sayfa(bottom sheet) (ekranın altından görüntüye animasyon uygulayan ve iOS tarzı uygulamalarda yaygın olan bir öğe) ekleme işlevselliği sağlar.

Aksi şekilde yapılandırmadığınız sürece, bir scaffold'daki AppBar, uygulamanızın sol üst köşesinde çekmeceyi açacak bir menü düğmesi şekilde otomatik olarak ayarlanır; menüsü olan bir ekranda olmadığınızda menü düğmesi geri düğmesine dönüşür.

Daha da önemlisi, hangi özellikleri istediğinizi ve hangilerini istemediğinizi seçebilirsiniz. Uygulamanızın drawer tarzı bir menüsü yoksa, onu bir drawer'a geçiremezsiniz ve bu otomatik menü düğmeleri kaybolur.

Scaffold widget'ı, tümü constructor'dan yapılandırılan birçok isteğe bağlı özellik sağlar.

// From Flutter source code. Scaffold constructor.
const Scaffold({
    Key key,
    this.appBar,
    this.body,
    this.floatingActionButton,
    this.floatingActionButtonLocation,
    this.floatingActionButtonAnimator,
    this.persistentFooterButtons,
    this.drawer,
    this.endDrawer,
    this.bottomNavigationBar,
    this.bottomSheet,
    this.backgroundColor,
    this.resizeToAvoidBottomPadding = true,
    this.primary = true,
  }) : assert(primary != null), super(key: key);
Enter fullscreen mode Exit fullscreen mode

Ve bu özelliklerin hiç biri @required olarak işaretlenmemiştir. Bir AppBar kullanabilirsiniz, ancak kullanmak zorunda değilsiniz. Aynısı drawer'lar, navigation bar'lar (gezinme çubukları) vb. için de geçerlidir.

Uygulamanızın farklı ekranlarının her birinin kendi Scaffold widget'ına sahip olması yaygın bir durumdur.

Scaffold sadece bir widget'dır ve argümanlarının çoğu isteğe bağlıdır. Bu durum da onu son derece özelleştirilebilir hale getirir.

    return Scaffold(
      appBar: XWidget() //uygulamanızın en üstüne yerleştirilecek olan widgettır. 
      body: YWidget(...) // ana bölümü temsil eden bir scaffolddur.

Enter fullscreen mode Exit fullscreen mode

Resource: Flutter in Action chapter-4 ✨

Oldest comments (0)