Overlay.of
is a static method in Flutter that is used to retrieve the OverlayState
for the nearest ancestor Overlay
widget.
The Overlay
widget is used to create a stack of widgets that can be displayed on top of other widgets in a Flutter application. The Overlay.of
method allows you to access the OverlayState
associated with a specific BuildContext
.
Here's an example of how you might use Overlay.of
to access the 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'),
),
),
);
}
}
In this example, when the button is pressed, the Overlay.of
method is used to retrieve the OverlayState
associated with the current BuildContext
. An OverlayEntry
is then created and added to the overlay using the insert
method of the OverlayState
. This displays a blue container at a specific position on top of other widgets.
Please note that using overlay requires careful management, and you should typically remove entries from the overlay when they are no longer needed to avoid memory leaks.
If there have been any updates or changes related to Overlay.of
after my last update, I recommend checking the Flutter documentation for the latest information.