Sobes.tech
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:

  1. 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");
    
  2. 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.
    
  3. 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.