Używanie Overlay .of w Flutter: przewodnik i przykład

Overlay.of jest metodą statyczną Flutter używaną do pobierania widżetu OverlayState najbliższego przodka Overlay.

Widżet Overlay służy do tworzenia stosu widżetów, które mogą być wyświetlane na wierzchu innych widżetów w Flutter aplikacji. Metoda Overlay.of umożliwia dostęp do OverlayState powiązanych z określonym plikiem BuildContext.

Oto przykład, jak możesz użyć, Overlay.of aby uzyskać dostęp do OverlayState:

import 'package:flutter/material.dart';  
  
void main() {  
  runApp(MyApp());  
}  
  
class MyApp extends StatelessWidget {  
  @override  
  Widget build(BuildContext context) {  
    return MaterialApp(  
      home: MyHomePage(),  
   );  
  }  
}  
  
class MyHomePage extends StatelessWidget {  
  @override  
  Widget build(BuildContext context) {  
    return Scaffold(  
      appBar: AppBar(  
        title: Text('Overlay.of Example'),  
     ),  
      body: Center(  
        child: ElevatedButton(  
          onPressed:() {  
            OverlayState overlayState = Overlay.of(context);  
            OverlayEntry overlayEntry = OverlayEntry(  
              builder:(BuildContext context) {  
                return Positioned(  
                  top: 100,  
                  left: 50,  
                  child: Container(  
                    width: 100,  
                    height: 100,  
                    color: Colors.blue,  
                 ),  
               );  
              },  
           );  
            overlayState.insert(overlayEntry);  
          },  
          child: Text('Show Overlay'),  
       ),  
     ),  
   );  
  }  
}  

W tym przykładzie po naciśnięciu przycisku Overlay.of metoda jest używana do pobrania OverlayState skojarzonego z bieżącym plikiem BuildContext. Następnie OverlayEntry jest tworzony i dodawany do metody overlay przy użyciu insert metody OverlayState. Spowoduje to wyświetlenie niebieskiego kontenera w określonej pozycji nad innymi widżetami.

Należy pamiętać, że używanie overlay wymaga starannego zarządzania i zwykle należy usuwać wpisy z programu, overlay gdy nie są już potrzebne, aby uniknąć wycieków pamięci.

Jeśli po mojej ostatniej aktualizacji pojawiły się jakieś aktualizacje lub zmiany Overlay.of, zalecam sprawdzenie Flutter dokumentacji w celu uzyskania najnowszych informacji.