Jaime Blasco

Add support to all params showBarModalButtonSheet

@@ -10,11 +10,18 @@ const Radius _default_bar_top_radius = Radius.circular(15); @@ -10,11 +10,18 @@ const Radius _default_bar_top_radius = Radius.circular(15);
10 10
11 class BarBottomSheet extends StatelessWidget { 11 class BarBottomSheet extends StatelessWidget {
12 final Widget child; 12 final Widget child;
13 - final Widget topControl;  
14 - final Radius topRadius; 13 + final Widget control;
  14 + final Clip clipBehavior;
  15 + final double elevation;
  16 + final ShapeBorder shape;
15 17
16 const BarBottomSheet( 18 const BarBottomSheet(
17 - {Key key, this.child, this.topControl, @required this.topRadius}) 19 + {Key key,
  20 + this.child,
  21 + this.control,
  22 + this.clipBehavior,
  23 + this.shape,
  24 + this.elevation})
18 : super(key: key); 25 : super(key: key);
19 26
20 @override 27 @override
@@ -28,7 +35,7 @@ class BarBottomSheet extends StatelessWidget { @@ -28,7 +35,7 @@ class BarBottomSheet extends StatelessWidget {
28 SizedBox(height: 12), 35 SizedBox(height: 12),
29 SafeArea( 36 SafeArea(
30 bottom: false, 37 bottom: false,
31 - child: topControl ?? 38 + child: control ??
32 Container( 39 Container(
33 height: 6, 40 height: 6,
34 width: 40, 41 width: 40,
@@ -41,21 +48,20 @@ class BarBottomSheet extends StatelessWidget { @@ -41,21 +48,20 @@ class BarBottomSheet extends StatelessWidget {
41 Flexible( 48 Flexible(
42 flex: 1, 49 flex: 1,
43 fit: FlexFit.loose, 50 fit: FlexFit.loose,
44 - child: ClipRRect(  
45 - borderRadius:  
46 - BorderRadius.only(topLeft: topRadius, topRight: topRadius),  
47 - child: Container(  
48 - decoration: BoxDecoration(  
49 - color: Theme.of(context).scaffoldBackgroundColor,  
50 - boxShadow: [  
51 - BoxShadow(  
52 - blurRadius: 10,  
53 - color: Colors.black12,  
54 - spreadRadius: 5)  
55 - ]),  
56 - width: double.infinity,  
57 - child: MediaQuery.removePadding(  
58 - context: context, removeTop: true, child: child)), 51 + child: Material(
  52 + shape: RoundedRectangleBorder(
  53 + side: BorderSide(),
  54 + borderRadius: BorderRadius.only(
  55 + topLeft: _default_bar_top_radius,
  56 + topRight: _default_bar_top_radius),
  57 + ),
  58 + clipBehavior: clipBehavior ?? Clip.hardEdge,
  59 + elevation: elevation ?? 2,
  60 + child: SizedBox(
  61 + width: double.infinity,
  62 + child: MediaQuery.removePadding(
  63 + context: context, removeTop: true, child: child),
  64 + ),
59 ), 65 ),
60 ), 66 ),
61 ]), 67 ]),
@@ -78,7 +84,6 @@ Future<T> showBarModalBottomSheet<T>({ @@ -78,7 +84,6 @@ Future<T> showBarModalBottomSheet<T>({
78 bool useRootNavigator = false, 84 bool useRootNavigator = false,
79 bool isDismissible = true, 85 bool isDismissible = true,
80 bool enableDrag = true, 86 bool enableDrag = true,
81 - Radius topRadius = _default_bar_top_radius,  
82 Widget topControl, 87 Widget topControl,
83 Duration duration, 88 Duration duration,
84 }) async { 89 }) async {
@@ -96,8 +101,10 @@ Future<T> showBarModalBottomSheet<T>({ @@ -96,8 +101,10 @@ Future<T> showBarModalBottomSheet<T>({
96 bounce: bounce, 101 bounce: bounce,
97 containerBuilder: (_, __, child) => BarBottomSheet( 102 containerBuilder: (_, __, child) => BarBottomSheet(
98 child: child, 103 child: child,
99 - topRadius: topRadius,  
100 - topControl: topControl, 104 + control: topControl,
  105 + clipBehavior: clipBehavior,
  106 + shape: shape,
  107 + elevation: elevation,
101 ), 108 ),
102 secondAnimationController: secondAnimation, 109 secondAnimationController: secondAnimation,
103 expanded: expand, 110 expanded: expand,