Sobes.tech
Middle

K čemu slouží klíče ve Flutteru?

sobes.tech AI

Odpověď od AI

Klíče se používají k identifikaci widgetů a prvků ve stromu widgetů Flutter. To je důležité pro:

  • Aktualizaci widgetů: Flutter používá klíče k určení, zda má widget znovu sestavit nebo pouze aktualizovat jeho stávající instanci. Pokud se klíč widgetu nezmění a jeho data se aktualizují, Flutter znovu použije a aktualizuje stávající prvek místo vytváření nového.
  • Uchování stavu: Klíče umožňují zachovat stav widgetů při jejich přesunu ve stromu widgetů nebo při změně pořadí podřízených prvků v seznamu.
  • Efektivitu: Použití klíčů pomáhá Flutteru optimalizovat proces vykreslování a vyhýbat se zbytečným přestavbám prvků.

Existují různé typy klíčů:

  • LocalKey: Základní třída pro klíče, které jsou jedinečné v rámci rodičovského widgetu.
    • ValueKey<T>: Používá konkrétní hodnotu (String, int atd.) jako unikátní identifikátor.
    • ObjectKey: Používá odkaz na objekt jako unikátní identifikátor.
  • GlobalKey: Globálně jedinečné klíče v rámci celé aplikace. Používají se pro přístup ke stavu widgetu odkudkoli nebo pro zachování stavu widgetu při jeho přesunu na jiné obrazovky.
    • GlobalKey<T extends State<StatefulWidget>>: Pro přístup ke stavu StatefulWidget.
    • GlobalKey: Pro jiné globální identifikace.

Příklad použití ValueKey v ListView pro zachování stavu prvků seznamu:

ListView.builder(
  itemCount: items.length,
  itemBuilder: (context, index) {
    final item = items[index];
    return Dismissible(
      key: ValueKey(item.id), // Unikátní klíč pro každý prvek
      onDismissed: (direction) {
        // Odstranit prvek
      },
      child: ListTile(title: Text(item.name)),
    );
  },
);