AppBar — bu nədir, Flutter-da quraşdırma və vidjetlər

Müəllif: IT Sectr Dərc olunub: 2026-07-02 Oxuma vaxtı: 9 dəq

AppBar — Flutter-da ekranın yuxarı panelinin vidjetidir, Material Design komponentini başlıq, hərəkətlər, naviqasiya düyməsi və tablar ilə tətbiq edir. Row və ya Stack üzərindəki fərdi paneldən fərqli olaraq, AppBar düzgün hündürlüyü 56dp (yığılmış vəziyyətdə 48dp) və SafeArea-nın avtomatik işlənməsi ilə hazır arxitektura təqdim edir. Flutter API Reference (2026)-ya görə, AppBar SliverAppBar vasitəsilə sürüşdürmə zamanı animasiyanı və forceMaterialTransparency parametri ilə Material 3 ilə inteqrasiyanı dəstəkləyir. Tipik mobil tətbiqdə AppBar naviqasiya və məlumat mərkəzi rolunu oynayır, səhifə başlığını, sistem hərəkətlərini və bölmələr arasında keçidi birləşdirir.

Əsas məqamlar

  • AppBar — Flutter-da başlıq, actions, leading və TabBar və Material 3 dəstəyi ilə yuxarı panel vidjeti
  • Title — platformadan asılı olaraq mərkəzləşdirilən və ya sola düzləndirilən başlıq mətni
  • Actions — AppBar-da sağda yerləşdirilən hərəkət vidjetlərinin siyahısı (IconButton, PopupMenuButton)
  • Leading — solda naviqasiya düyməsi (Drawer üçün "hamburger" ikonu və ya iç-içə ekranlar üçün "Geri" düyməsi)
  • Bottom — TabBar, PreferredSize və ya fərdi vidjetlərin yerləşdirilməsi üçün AppBar-ın aşağı sahəsi

Flutter-da AppBar nədir

AppBar — Scaffold-un yuxarı hissəsində göstərilən standart Material yuxarı panel komponentidir. O, ekran başlığını, naviqasiya düyməsini (adətən "hamburger" ikonu və ya "Geri" oxu) və hərəkətləri — axtarış, parametrlər və ya digər funksiyaları açan ikonları ehtiva edir. AppBar avtomatik olaraq platformaya uyğunlaşır: Android-də standart Material bottom-shadow, iOS-da isə daha düz dizayn və şəffaflıq istifadə olunur.

AppBar PreferredSizeWidget interfeysini tətbiq edir, yəni hündürlüyü sabitdir və qurulmadan əvvəl məlumdur. Standart olaraq AppBar-ın hündürlüyü Android-də 56dp, iOS-da şaquli oriyentasiyada 44dp təşkil edir, yuxarıda SafeArea nəzərə alınmaqla. Bu xüsusiyyət Scaffold-a body üçün mövcud yeri əvvəlcədən hesablamağa imkan verir, render zamanı yenidən düzülmənin qarşısını alır.

Flutter Material Library Guide (2026)-ya görə, AppBar bir neçə iterasiyadan keçmişdir: Flutter 1.x-də sadə mətn konteyneri idi, Flutter 2.x-də Material 3 və flexibleSpace dəstəyi aldı, Flutter 3.x-də isə System UI (status paneli rəngi, şəffaflıq) ilə inteqrasiya əldə etdi. Müasir AppBar Android 12+ cihazlarında Material You-dan Dynamic Color-ı dəstəkləyir.

AppBar strukturu: xüsusiyyətlər və parametrlər

AppBar yuxarı panelin hər hissəsini idarə edən parametrlər dəsti təqdim edir. Bu xüsusiyyətləri başa düşmək, fərdi həllər yaratmadan paneli istənilən dizayn tələblərinə çevik şəkildə uyğunlaşdırmağa imkan verir.

XüsusiyyətTipTəsvir
titleWidget?Panelin əsas başlığı, adətən ekran adı ilə Text
leadingWidget?Başlığın solundakı vidjet ("Geri" düyməsi və ya menyu ikonu)
actionsList<Widget>?Sağdakı hərəkət vidjetlərinin siyahısı (IconButton, PopupMenuButton)
bottomPreferredSizeWidget?TabBar və ya fərdi vidjet üçün aşağı sahə
flexibleSpaceWidget?SliverAppBar-da sürüşdürmə zamanı animasiya edilən fon vidjeti
backgroundColorColor?Panelin fon rəngi, tema rəngini ləğv edir
elevationdoublePanelin altındakı kölgə, məzmun üzərində qaldırma effekti yaradır
centerTitlebool?Başlığın mərkəzləşdirilməsi (true — Material 3 davranışı, false — Android stili)

Title və leading: başlıq və naviqasiyanın qurulması

title xüsusiyyəti istənilən vidjeti qəbul edir, lakin ən çox TextStyle ilə stil konfiqurasiyası olan Text istifadə olunur. Uzun başlıqlar üçün title-ı Flexible-ə bükmək tövsiyə olunur ki, yer çatışmazlığında mətn düzgün kəsilsin. leading xüsusiyyəti, açıq şəkildə təyin edilməyibsə, Navigator.push vasitəsilə iç-içə ekrana keçid zamanı avtomatik olaraq BackButton ilə əvəz olunur.

Actions: hərəkət ikonlarının yerləşdirilməsi

actions siyahısı AppBar-ın sağ kənarına düzləndirilmiş vidjetləri ehtiva edir. Hər bir element 48dp-dən (Material Design standartı) geniş olmamalıdır. Hərəkətləri qruplaşdırmaq üçün PopupMenuButton istifadə edin — bu, daha az vacib variantları açılan menyuda gizlədir və interfeys sıxlığı üzrə Material tövsiyələrinə əməl edir.

AppBar-ın fərdiləşdirilməsi: stillər, rənglər və davranış

AppBar rəng, kölgə və boşluq xüsusiyyətləri vasitəsilə dərin fərdiləşdirməni dəstəkləyir. Əsas görünüş tətbiqin mövzusundan miras alınır, lakin hər bir xüsusiyyət fərdi olaraq ləğv edilə bilər. Əsas konfiqurasiya ssenarilərini nəzərdən keçirək.

AppBar-ın fon rəngi backgroundColor vasitəsilə təyin edilir. Göstərilməyibsə, ThemeData-dən appBarTheme istifadə olunur. Material 3-də AppBar rəngi avtomatik olaraq ColorScheme.primary-dən hesablanır, lakin konkret ekran üçün ləğv edilə bilər. Şəffaf AppBar (tez-tez profillərdə istifadə olunur) üçün backgroundColor: Colors.transparent və elevation: 0 təyin edin.

elevation xüsusiyyəti AppBar altındakı kölgəni idarə edir. 0 dəyəri kölgəni silir, "düz" panel effekti yaradır, bu Material 3 üçün aktualdır. 4 dəyəri standart Material Design kölgəsi verir. Kölgənin fərdi idarəsi üçün shadowColor istifadə edin — paneli məzmundan vizual olaraq ayıran kölgə rəngi.

AppBar-da mətn rəngini idarə etmək üçün foregroundColor istifadə edin. Bu xüsusiyyət başlığın, ikonların və actions mətninin rənginə təsir edir. backgroundColor dəyişdirilərkən avtomatik olaraq kontrastlı foregroundColor seçilir, lakin qeyri-standart dizaynlar üçün məcburi təyin edilə bilər.

SliverAppBar: AppBar-ın animasiyalı versiyası

SliverAppBar — CustomScrollView daxilində istifadə üçün AppBar-ın genişləndirilməsidir, sürüşdürmə zamanı animasiyanı dəstəkləyir: yığılma (collapsing), paralaks effekti və bərkitmə (pinned). Standart AppBar-dan fərqli olaraq, SliverAppBar sliver-vidjetdir və sürüşdürmə mövqeyindən asılı olaraq ölçüsünü dinamik dəyişə bilər.

SliverAppBar-ın əsas rejimləri pinned, floating və snap xüsusiyyətlərinin kombinasiyası ilə müəyyən edilir. Pinned rejimində panel həmişə ekranın yuxarı hissəsində görünür. Floating rejimində əks sürüşdürmə zamanı görünür. Floating + snap kombinasiyası "yapışqan" panel davranışı yaradır, ən kiçik yuxarı sürüşdürmədə çıxır, bu tez-tez xəbər lentlərində istifadə olunur.

Flutter API SliverAppBar (2026)-ya görə, SliverAppBar istifadə etmək üçün adi ListView və ya Column-ı sliver-vidjetlərlə CustomScrollView ilə əvəz etmək lazımdır. Scaffold düzgün işləməyə davam edir, lakin Scaffold-un appBar xüsusiyyəti null olmalıdır — SliverAppBar CustomScrollView daxilində ilk sliver kimi yerləşdirilir.

Tətbiqdə AppBar-ın qurulması nümunəsi

AppBar nümunəsini axtarış, açılan menyu və TabBar ilə nəzərdən keçirək. Bu kod Flutter-da istehsal tətbiqində yuxarı panelin tipik konfiqurasiyasını nümayiş etdirir.

dart
Scaffold(
  appBar: AppBar(
    title: const Text('Kataloq'),
    centerTitle: true,
    leading: IconButton(
      icon: const Icon(Icons.menu),
      onPressed: () => Scaffold.of(context).openDrawer(),
    ),
    actions: [
      IconButton(
        icon: const Icon(Icons.search),
        onPressed: () => showSearch(context: context, delegate: ProductSearch()),
      ),
      PopupMenuButton<String>(
        onSelected: (String value) {},
        itemBuilder: (context) => [
          const PopupMenuItem(value: 'settings', child: Text('Parametrlər')),
          const PopupMenuItem(value: 'about', child: Text('Tətbiq haqqında')),
        ],
      ),
    ],
    bottom: const TabBar(
      tabs: [
        Tab(text: 'All'),
        Tab(text: 'New'),
        Tab(text: 'Popular'),
      ],
    ),
  ),
  body: const TabBarView(
    children: [
      AllProductsPage(),
      NewProductsPage(),
      PopularProductsPage(),
    ],
  ),
)

Nümunədə AppBar mərkəzləşdirilmiş başlıq, solda Drawer açma düyməsi, sağda axtarış ikonu və açılan menyu ehtiva edir. TabBar bottom-da məhsul kateqoriyaları arasında keçid etməyə imkan verir. Bu konfiqurasiya mobil tətbiqlərin əksər ssenarilərini əhatə edir: naviqasiya, axtarış, əlavə seçimlər və bölmələr arasında keçid — hamısı bir yuxarı paneldə.

Tez-tez verilən suallar

Flutter-da AppBar-ın hündürlüyünü necə dəyişmək olar?

AppBar-ın hündürlüyü sabitdir (56dp) və birbaşa dəyişdirilə bilməz. Fərdi hündürlük üçün PreferredSize istifadə edin, istədiyiniz hündürlükdə fərdi vidjeti ona bükün. Alternativ olaraq, yığılmış vəziyyətdə ölçüsü çevik idarə etmək üçün SliverAppBar-ı collapsedHeight ilə istifadə edin, standart panelin funksionallığını itirmədən.

AppBar altındakı kölgəni necə silmək olar?

AppBar konstruktorunda elevation: 0 xüsusiyyətini təyin edin. Bu, kölgəni siləcək və paneli vizual olaraq düz edəcək, Material 3 stilistikasına uyğundur. Tam nəzarət üçün shadowColor: Colors.transparent istifadə edin, elevation dəyişmədən kölgə rəngini ləğv etmək üçün, z-koordinatını saxlamaq lazımdırsa.

AppBar SliverAppBar-dan nə ilə fərqlənir?

AppBar — Scaffold.appBar-da yerləşdirilən sabit hündürlüklü statik panel. SliverAppBar — CustomScrollView daxilində istifadə olunan dinamik versiya, sürüşdürmə zamanı yığıla, bərkidilə və animasiya edilə bilər. SliverAppBar sürüşdürmə zamanı davranışı çevik idarə etmək üçün collapsedHeight, expandedHeight, pinned və floating xüsusiyyətlərini təqdim edir.

AppBar-a axtarışı necə əlavə etmək olar?

actions siyahısına axtarış ikonu ilə IconButton əlavə edin. Basıldıqda, avtomatik animasiya ilə axtarış ekranını açacaq fərdi SearchDelegate ilə showSearch çağırıla bilər. Alternativ olaraq — title-ı TextField ilə əvəz edin, AppBar-ı yerində axtarış sətrinə çevirin, bu kataloqlar və siyahılar üçün əlverişlidir.

Niyə başlıq AppBar-da mərkəzləşmir?

Standart olaraq centerTitle null-a bərabərdir və davranış platformadan asılıdır: Android-də başlıq sola düzləndirilir, iOS-da mərkəzə. Hər iki platformada məcburi mərkəzləşdirmə üçün centerTitle: true təyin edin. Başlıq leading səbəbindən mərkəzləşmirsə, leading-in null olmadığını yoxlayın — onun mövcudluğu başlığı sağa sürüşdürür.

Xülasə

  • AppBar — Flutter-da başlıq, leading, actions və bottom ilə TabBar üçün standart yuxarı panel, SafeArea-nı avtomatik nəzərə alır
  • Title — centerTitle vasitəsilə mərkəzləşdirmə konfiqurasiyası ilə istənilən vidjeti qəbul edən panelin mərkəzi elementi
  • Actions — Material Design standartına görə hər biri 48dp-ə qədər enində olan sağdakı hərəkət vidjetlərinin siyahısı
  • Leading — solda naviqasiya düyməsi, iç-içə ekrana keçid zamanı avtomatik BackButton ilə əvəz olunur
  • SliverAppBar — yığılma, bərkitmə və paralaks effekti dəstəyi ilə CustomScrollView üçün AppBar genişləndirilməsi
  • Material 3 — AppBar Dynamic Color, şəffaflıq və forceMaterialTransparency parametri vasitəsilə NavigationBar-ı dəstəkləyir
  • Fərdiləşdirmə — backgroundColor, elevation, foregroundColor və shadowColor xüsusiyyətləri görünüşü layihə dizaynına uyğun dəqiq tənzimləməyə imkan verir

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun