Widget to allow the presentation of a widget below a floating one. It supports moving the floating widget around which sticks to the corners.
Create a PIPView
widget, the prop builder
will be the view rendered floating when requested. To present a view below the floating view use PIPView.of(context).presentBelow(MyWidget())
.
avoidKeyboard
: whether the floating view should avoid the keyboard;builder
: a builder for the widget to float, the second parameter indicates if the view is floating;initialCorner
: the corner in which the floating view will be sticked initially- Possible values are:
PIPViewCorner.topLeft
,PIPViewCorner.topRight
,PIPViewCorner.bottomLeft
,PIPViewCorner.bottomRight
;
- Possible values are:
floatingHeight
: the height of the foreground view when floating. If not set is calculated from thefloatingWidth
to keep aspect ratio of the screen;floatingWidth
: the width of the foreground view when floating. If not set andfloatingHeight
is set, it is calculated from thefloatingHeight
value to keep aspect ratio of the screen. If not set andfloatingHeight
is not set, defaults to100.0
;
class MyScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return PIPView(
builder: (context, isFloating) {
return Scaffold(
body: Column(
children: [
Text('This is the screen that will float!');
MaterialButton(
child: Text('Start floating');
onPressed: () {
PIPView.of(context).presentBelow(MyBackgroundScreen());
},
),
],
);
);
},
);
}
}
class MyBackgroundScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Text('This is my background screen!');
);
}
}
NOTE: If you want a more declarative way of using the PIPView
, you can use RawPIPView
instead.