Showing
1 changed file
with
15 additions
and
5 deletions
| @@ -6,10 +6,16 @@ import 'package:flutter/services.dart'; | @@ -6,10 +6,16 @@ import 'package:flutter/services.dart'; | ||
| 6 | import '../../modal_bottom_sheet.dart'; | 6 | import '../../modal_bottom_sheet.dart'; |
| 7 | import '../bottom_sheet_route.dart'; | 7 | import '../bottom_sheet_route.dart'; |
| 8 | 8 | ||
| 9 | +const Radius _default_bar_top_radius = Radius.circular(15); | ||
| 10 | + | ||
| 9 | class BarBottomSheet extends StatelessWidget { | 11 | class BarBottomSheet extends StatelessWidget { |
| 10 | final Widget child; | 12 | final Widget child; |
| 13 | + final Widget topControl; | ||
| 14 | + final Radius topRadius; | ||
| 11 | 15 | ||
| 12 | - const BarBottomSheet({Key key, this.child}) : super(key: key); | 16 | + const BarBottomSheet( |
| 17 | + {Key key, this.child, this.topControl, @required this.topRadius}) | ||
| 18 | + : super(key: key); | ||
| 13 | 19 | ||
| 14 | @override | 20 | @override |
| 15 | Widget build(BuildContext context) { | 21 | Widget build(BuildContext context) { |
| @@ -22,7 +28,8 @@ class BarBottomSheet extends StatelessWidget { | @@ -22,7 +28,8 @@ class BarBottomSheet extends StatelessWidget { | ||
| 22 | SizedBox(height: 12), | 28 | SizedBox(height: 12), |
| 23 | SafeArea( | 29 | SafeArea( |
| 24 | bottom: false, | 30 | bottom: false, |
| 25 | - child: Container( | 31 | + child: topControl ?? |
| 32 | + Container( | ||
| 26 | height: 6, | 33 | height: 6, |
| 27 | width: 40, | 34 | width: 40, |
| 28 | decoration: BoxDecoration( | 35 | decoration: BoxDecoration( |
| @@ -35,9 +42,8 @@ class BarBottomSheet extends StatelessWidget { | @@ -35,9 +42,8 @@ class BarBottomSheet extends StatelessWidget { | ||
| 35 | flex: 1, | 42 | flex: 1, |
| 36 | fit: FlexFit.loose, | 43 | fit: FlexFit.loose, |
| 37 | child: ClipRRect( | 44 | child: ClipRRect( |
| 38 | - borderRadius: BorderRadius.only( | ||
| 39 | - topLeft: Radius.circular(15), | ||
| 40 | - topRight: Radius.circular(15)), | 45 | + borderRadius: |
| 46 | + BorderRadius.only(topLeft: topRadius, topRight: topRadius), | ||
| 41 | child: Container( | 47 | child: Container( |
| 42 | decoration: BoxDecoration( | 48 | decoration: BoxDecoration( |
| 43 | color: Theme.of(context).scaffoldBackgroundColor, | 49 | color: Theme.of(context).scaffoldBackgroundColor, |
| @@ -72,6 +78,8 @@ Future<T> showBarModalBottomSheet<T>({ | @@ -72,6 +78,8 @@ Future<T> showBarModalBottomSheet<T>({ | ||
| 72 | bool useRootNavigator = false, | 78 | bool useRootNavigator = false, |
| 73 | bool isDismissible = true, | 79 | bool isDismissible = true, |
| 74 | bool enableDrag = true, | 80 | bool enableDrag = true, |
| 81 | + Radius topRadius = _default_bar_top_radius, | ||
| 82 | + Widget topControl, | ||
| 75 | Duration duration, | 83 | Duration duration, |
| 76 | }) async { | 84 | }) async { |
| 77 | assert(context != null); | 85 | assert(context != null); |
| @@ -88,6 +96,8 @@ Future<T> showBarModalBottomSheet<T>({ | @@ -88,6 +96,8 @@ Future<T> showBarModalBottomSheet<T>({ | ||
| 88 | bounce: bounce, | 96 | bounce: bounce, |
| 89 | containerBuilder: (_, __, child) => BarBottomSheet( | 97 | containerBuilder: (_, __, child) => BarBottomSheet( |
| 90 | child: child, | 98 | child: child, |
| 99 | + topRadius: topRadius, | ||
| 100 | + topControl: topControl, | ||
| 91 | ), | 101 | ), |
| 92 | secondAnimationController: secondAnimation, | 102 | secondAnimationController: secondAnimation, |
| 93 | expanded: expand, | 103 | expanded: expand, |
-
Please register or login to post a comment