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.