flutter_cupertino_bottom_sheet

Last updated:

0 purchases

flutter_cupertino_bottom_sheet Image
flutter_cupertino_bottom_sheet Images
Add to Cart

Description:

flutter cupertino bottom sheet

A package that mimics a Cupertino bottom sheet like this VERY EASILY #




Unlike existing packages that can mimic the same behavior flutter_cupertino_bottom_sheet does not require
a scaffold for this purpose and can be used from any place and any time.
You don't have to use any special code except for wrapping your MaterialApp
with CupertinoBottomSheetRepaintBoundary() at the beginning. And that's it.
That simple. You don't even need a specific context for it to work
How it works. #
It's very simple. Internally it uses a repaint boundary to create a screenshot
of the whole screen and make a RawImage out of it. So it doesn't matter if the
previous route maintains its state or not. It doesn't really need to know
anything about the previous route as it uses a screenshot instead of a widget
snapshot
Getting started #
import the package where you initialize your app
import 'package:flutter_cupertino_bottom_sheet/flutter_cupertino_bottom_sheet.dart';
copied to clipboard
And then wrap your MaterialApp or whatever type you use with CupertinoBottomSheetRepaintBoundary
void main() {
runApp(const MyApp());
}

class MyApp extends StatelessWidget {
const MyApp({super.key});

@override
Widget build(BuildContext context) {
return CupertinoBottomSheetRepaintBoundary(
child: MaterialApp(
...
),
);
}
}
copied to clipboard
This will provide a necessary RenderRepaintBoundary for the library to work.
Then you can use a Navigator to push this route like this:
Navigator.of(context).push(
CupertinoBottomSheetRoute(
args: const CupertinoBottomSheetRouteArgs(
swipeSettings: SwipeSettings(
canCloseBySwipe: true,
),
),
builder: (context) {
return const TestPage();
},
),
);
copied to clipboard
Want less code? No problem. #
Pass a cupertinoBottomSheetNavigatorKey to your App initialization
@override
Widget build(BuildContext context) {
return CupertinoBottomSheetRepaintBoundary(
child: MaterialApp(
navigatorKey: cupertinoBottomSheetNavigatorKey,
...
),
);
}
copied to clipboard
And then call openCupertinoBottomSheet() from any place, regardless of context
openCupertinoBottomSheet(builder: (c) {
return const TestPage();
args: CupertinoBottomSheetRouteArgs(
appBar: CupertinoBottomSheetAppBar.withCloseButton(
title: 'Cupertino Actionsheet',
buttonText: 'Done',
headerStyle: Theme.of(context).textTheme.bodyMedium,
onClosePressed: Navigator.of(context).pop,
),
),
});
copied to clipboard

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.