Sobes.tech
Middle

Açarlar və ssenarilər necə tətbiq olunur?

sobes.tech Süni İntellekt

AI-dan cavab

Flutter-da Açarlar (Keys), widgetlərin, elementlərin və vəziyyətlərin tanınmasını idarə etmək üçün istifadə olunur, onların yenidən qurulması zamanı. Ssenarilər (Scenarios), Flutter-də standart termin kimi qəbul edilmir; ehtimal ki, müxtəlif nümunələr və ya açarların istifadə üsulları nəzərdə tutulur.

Açarların növləri və tətbiqi:

  • LocalKey: Eyni valideyn daxilində widgetlər üçün istifadə olunur.

    • ValueKey: Dəyərə əsaslanır (String, int və s.). Dəyişən widget siyahıları ilə işləyərkən faydalıdır (məsələn, Dismissible).
    // Siyahıda widget-in vəziyyətini saxlamaq üçün ValueKey istifadə nümunəsi
    ListView.builder(
      itemCount: items.length,
      itemBuilder: (context, index) {
        return Dismissible(
          key: ValueKey(items[index].id), // Unikal ID açar kimi
          onDismissed: (direction) {
            // Elementi siyahıdan silmək
          },
          child: ListTile(title: Text(items[index].name)),
        );
      },
    )
    
    • ObjectKey: Obeyektə istinad əsasında.
    // ObjectKey istifadə nümunəsi
    // (daha az yayılmış, ValueKey-dən fərqli olaraq, obyekt identifikasiyası üçün faydalı)
    Object uniqueObject = new Object(); // Unikal varlıq təmsil edən obyekt
    Widget myWidget = Container(key: ObjectKey(uniqueObject));
    
  • GlobalKey: Widget-in bütün ağacında unikal identifikasiya üçün istifadə olunur. Widget-in vəziyyətinə çıxış və ya hərəkət etmək üçün imkan verir.

    • GlobalKey:
      // Widget-in vəziyyətinə çıxış üçün GlobalKey nümunəsi
      final GlobalKey<MyStatefullWidgetState> myWidgetKey = GlobalKey();
      
      // Başqa yerdə
      // myWidgetKey.currentState?.doSomething(); // Vəziyyət metodunu çağırmaq
      
      // Widget-də istifadə
      // MyStatefullWidget(key: myWidgetKey);
      
    • GlobalKey<FormState>: Formanın vəziyyətini idarə etmək üçün istifadə olunur.
      // Formanın vəziyyətini yoxlamaq üçün GlobalKey<FormState> nümunəsi
      final GlobalKey<FormState> formKey = GlobalKey<FormState>();
      
      // ...
      
      // Formanın göndərilməsi zamanı
      // if (formKey.currentState!.validate()) {
      //   // Forma düzgün, əməliyyatlar yerinə yetirilir
      // }
      
      // Form widget-də istifadə
      // Form(key: formKey, child: ...)
      

Gündəlik inkişafda açarların tətbiqi (ssenarilər):

  • Dinamik siyahılardakı elementlərin vəziyyətinin idarə olunması: Açarlar (xüsusən ValueKey) Flutter-ın widget-ləri düzgün şəkildə yenidən istifadə etməsinə və yeniləməsinə imkan verir (ListView.builder, GridView.builder) elementlərin əlavə olunması, silinməsi və ya mövqeyinin dəyişdirilməsi zamanı. Açarlar olmadan Flutter widget-lərin vəziyyətini saxlamaqda çətinlik çəkə bilər (məsələn, siyahı elementindəki işarə qutusu yenidən qurularkən yox ola bilər).
  • Widget-in vəziyyətinə çıxış: GlobalKey hər yerdən State-ə müraciət etməyə imkan verir, bu da metodların çağırılması və ya bu vəziyyətdən məlumatların alınması üçün imkan yaradır (məsələn, Snack Bar göstərmək və ya Text Form Field-in vəziyyətini almaq).
  • Formaların vəziyyətinin idarə olunması: GlobalKey<FormState> formanın yoxlanması və sıfırlanması üçün vacibdir.
  • Giriş fokusunun idarə olunması: Açarlar müəyyən widget-lərdə fokusun (FocusNode) idarə olunması üçün istifadə edilə bilər.
  • Widget ağacında dəyişiklik zamanı vəziyyətin saxlanması: Əgər widget başqa yerə köçürsə, GlobalKey istifadə Flutter-ın onun vəziyyətini saxlamağa imkan verir, onu yenidən yaratmaq yerinə.

Ümumiyyətlə, açarlar Flutter-də widget-lərin həyat dövrü və vəziyyətin saxlanması üçün əsas mexanizmdir, xüsusən də dinamik UI ssenarilərində.