Middle
Flutter-də GlobalKeys nədir və necə istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
GlobalKey, tətbiqin bütün hiyerarşisində widgeti tanımlayan unikal açardır.
İstifadə sahələri:
-
Widget-in vəziyyətinə giriş: StatefulWidget-in vəziyyətinə widget ağacının hər yerindən giriş imkanı verir.
GlobalKey<_MyWidgetState> myWidgetKey = GlobalKey(); // ... class MyWidget extends StatefulWidget { MyWidget({Key? key}) : super(key: key); @override _MyWidgetState createState() => _MyWidgetState(); } class _MyWidgetState extends State<MyWidget> { String _text = "Initial"; void updateText(String newText) { setState(() { _text = newText; }); } @override Widget build(BuildContext context) { return Text(_text); } } // ... başqa yerdə: myWidgetKey.currentState?.updateText("Updated"); -
Widget-in vəziyyətini saxlamaq: Widget-in yerini dəyişəndə, onun vəziyyətini qorumağa kömək edir.
GlobalKey keyForMovableWidget = GlobalKey(); // ... Widget movableWidget = Container( key: keyForMovableWidget, color: Colors.blue, width: 100, height: 100, ); // movableWidget başqa yerə köçürüləndə, // onun vəziyyəti GlobalKey sayəsində saxlanılır. -
Widget-in metodlarını çağırmaq: Xaricdən widget-in ictimai metodlarını çağırmağa imkan verir.
GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>(); // ... Scaffold( key: scaffoldKey, // ... ); // ... başqa yerdə: scaffoldKey.currentState?.openDrawer();
GlobalKey-dən çox istifadə etmək widget ağacını mürəkkəbləşdirə və debugging-i çətinləşdirə bilər. Əksər hallarda, Provider, Riverpod və ya Bloc kimi digər vəziyyət idarəetmə mexanizmlərindən istifadə etmək daha məqsədəuyğundur. GlobalKey yalnız digər yanaşmalar tətbiq oluna bilmədikdə istifadə olunmalıdır.