Använder Overlay .of i Flutter: Guide och exempel

Overlay.of är en statisk metod Flutter som används för att hämta widgeten OverlayState för närmaste förfader. Overlay

Widgeten Overlay används för att skapa en stapel med widgets som kan visas ovanpå andra widgets i en Flutter applikation. Metoden Overlay.of låter dig komma åt den OverlayState associerade med en specifik BuildContext.

Här är ett exempel på hur du kan använda Overlay.of för att komma åt 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'),  
       ),  
     ),  
   );  
  }  
}  

I det här exemplet, när knappen trycks ned, Overlay.of används metoden för att hämta den OverlayState associerade med den aktuella BuildContext. En OverlayEntry skapas sedan och läggs till med overlay metoden insert för OverlayState. Detta visar en blå behållare på en specifik position ovanpå andra widgets.

Observera att användning overlay kräver noggrann hantering, och du bör vanligtvis ta bort poster från när overlay de inte längre behövs för att undvika minnesläckor.

Om det har skett några uppdateringar eller ändringar relaterade till Overlay.of efter min senaste uppdatering rekommenderar jag att du kontrollerar Flutter dokumentationen för den senaste informationen.