Korištenje Overlay .of u Flutter: Vodič i primjer

Overlay.of je statička metoda Flutter koja se koristi za dohvaćanje widgeta OverlayState najbližeg pretka Overlay.

Widget Overlay se koristi za stvaranje niza widgeta koji se mogu prikazati na vrhu drugih widgeta u aplikaciji Flutter. Metoda Overlay.of vam omogućuje pristup OverlayState povezanom s određenim BuildContext.

Evo primjera kako možete koristiti Overlay.of za pristup 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'),  
       ),  
     ),  
   );  
  }  
}  

U ovom primjeru, kada se pritisne gumb, Overlay.of metoda se koristi za dohvaćanje OverlayState povezanog s trenutnim BuildContext. Zatim se OverlayEntry kreira i dodaje u overlay koristeći insert metodu OverlayState. Ovo prikazuje plavi spremnik na određenom mjestu na vrhu drugih widgeta.

Imajte na umu da korištenje overlay zahtijeva pažljivo upravljanje i obično biste trebali ukloniti unose iz overlay kada više nisu potrebni kako biste izbjegli curenje memorije.

Ako je bilo bilo kakvih ažuriranja ili promjena vezanih Overlay.of uz moje zadnje ažuriranje, preporučujem da provjerite Flutter dokumentaciju za najnovije informacije.