Middle
Flutter'da GlobalKeys nedir ve nasıl kullanılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
GlobalKey, uygulama hiyerarşisinde benzersiz bir anahtardır ve widget'ı tanımlar.
Kullanım alanları:
-
Widget'in Durumuna Erişim: StatefulWidget'in durumuna, widget ağacının herhangi bir yerinden erişim sağlar.
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şka bir yerde: myWidgetKey.currentState?.updateText("Updated"); -
Widget'in Durumunu Saklama: Bir widget'in konumunu değiştirdiğinizde, durumunu korumak için kullanılır.
GlobalKey keyForMovableWidget = GlobalKey(); // ... Widget movableWidget = Container( key: keyForMovableWidget, color: Colors.blue, width: 100, height: 100, ); // movableWidget başka bir yere taşındığında, // durumu GlobalKey sayesinde korunur. -
Widget Metotlarını Çağırma: Dışarıdan widget'in genel metodlarını çağırmak için kullanılır.
GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>(); // ... Scaffold( key: scaffoldKey, // ... ); // ... başka bir yerde: scaffoldKey.currentState?.openDrawer();
GlobalKey'in sık kullanımı, widget ağacını karmaşıklaştırabilir ve hata ayıklamayı zorlaştırabilir. Çoğu durumda, Provider, Riverpod veya Bloc gibi diğer durum yönetimi mekanizmaları tercih edilmelidir. GlobalKey, yalnızca diğer yaklaşımların uygulanamadığı durumlarda kullanılmalıdır.