Sobes.tech
Middle

Milleks kasutatakse Flutteris võtmeid?

sobes.tech AI

Vastus AI-lt

Võtmed kasutatakse Flutteri vidinute ja elementide tuvastamiseks puus. See on oluline:

  • Vidinate uuendamine: Flutter kasutab võtmeid, et määrata, kas vidinat tuleb uuendada või lihtsalt olemasolevat eksemplari värskendada. Kui vidina võti ei muutu, kuid tema andmed uuenevad, kasutab Flutter olemasolevat elementi uuesti ja värskendab seda, mitte ei loo uut.
  • Oleku säilitamine: Võtmed võimaldavad säilitada vidinate olekut nende puus või muutudes järjekorras laste elementide loendis.
  • Tõhusus: Võtmete kasutamine aitab Flutteril optimeerida renderdamisprotsessi, vältides tarbetuid uuendusi.

On erinevat tüüpi võtmeid:

  • LocalKey: põhiklass võtmetele, unikaalne vanemvidina piires.
    • ValueKey<T>: kasutab konkreetset väärtust (String, int jms) unikaalseks identifikaatoriks.
    • ObjectKey: kasutab objekti viidet unikaalseks identifikaatoriks.
  • GlobalKey: globaalselt unikaalsed võtmed kogu rakenduses. Kasutatakse vidina oleku juurde pääsemiseks igast kohast või vidina oleku säilitamiseks selle teisaldamisel teistele ekraanidele.
    • GlobalKey<T extends State<StatefulWidget>>: juurdepääs StatefulWidget-i olekule.
    • GlobalKey: teistele globaalsetele identifikaatoritele.

Näide ValueKey kasutamisest ListView-s, et säilitada elementide olek:

ListView.builder(
  itemCount: items.length,
  itemBuilder: (context, index) {
    final item = items[index];
    return Dismissible(
      key: ValueKey(item.id), // Unikaalne võti iga elemendi jaoks
      onDismissed: (direction) {
        // Elemendi kustutamine
      },
      child: ListTile(title: Text(item.name)),
    );
  },
);