Sobes.tech
Middle

Flutter'da kalitlar nima uchun ishlatiladi?

sobes.tech AI

AIdan javob

Flutter'da vidjetleri və elementləri tanımaq üçün açarların istifadə olunur. Bu, aşağıdakılar üçün vacibdir:

  • Vidjetləri yeniləmək: Flutter açarları istifadə edir ki, vidjetin yenidən qurulması və ya sadəcə mövcud nümunəsinin yenilənməsi lazım olub-olmadığını müəyyən etmək üçün. Əgər vidjetin açarı dəyişməzsə və onun məlumatları yenilənirsə, Flutter mövcud elementi yenidən istifadə edir və yeniləyir, yeni yaratmaq əvəzinə.
  • Vəziyyəti saxlamaq: Açarlar vidjetlərin vəziyyətini onların vidjet ağacında hərəkət etdirməsi və ya uşaq elementlərinin sırasını dəyişməsi zamanı qorumağa imkan verir.
  • Effektivlik: Açarların istifadəsi Flutter-ın render prosesini optimallaşdırmağa kömək edir və lazımsız yenidən qurmağı qarşısını alır.

Fərqli açar növləri mövcuddur:

  • LocalKey: Üst widget daxilində unikal olan əsas açar sinfi.
    • ValueKey<T>: Müəyyən bir dəyər (String, int və s.) kimi unikal identifikator istifadə edir.
    • ObjectKey: Obeyektə istinad istifadə edir kimi unikal identifikator.
  • GlobalKey: Bütün tətbiq üzrə unikal açarlar. Hər hansı bir yerdən widget-in vəziyyətinə daxil olmaq və ya widget-i başqa ekranlara köçürərkən vəziyyəti saxlamaq üçün istifadə olunur.
    • GlobalKey<T extends State<StatefulWidget>>: StatefulWidget-in vəziyyətinə daxil olmaq üçün.
    • GlobalKey: Digər qlobal identifikatorlar üçün.

ValueKey-in ListView-də istifadəsi ilə siyahı elementlərinin vəziyyətini saxlamaq nümunəsi:

ListView.builder(
  itemCount: items.length,
  itemBuilder: (context, index) {
    final item = items[index];
    return Dismissible(
      key: ValueKey(item.id), // Hər element üçün unikal açar
      onDismissed: (direction) {
        // Elementi sil
      },
      child: ListTile(title: Text(item.name)),
    );
  },
);