showInfoBottomSheet function
Future
showInfoBottomSheet({
- required BuildContext context,
- required Widget modalContent,
- required String imagePath,
Implementation
Future<dynamic> showInfoBottomSheet({
required BuildContext context,
required Widget modalContent,
required String imagePath,
}) async {
return showModalBottomSheet(
context: context,
backgroundColor: Colors.transparent,
barrierColor: Colors.transparent,
isScrollControlled: true,
builder: (BuildContext context) {
return Container(
key: AppWidgetKeys.bottomSheetInfoContainer,
padding: MediaQuery.of(context).viewInsets,
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: const BorderRadius.all(Radius.circular(20)),
boxShadow: <BoxShadow>[
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 2,
blurRadius: 5,
offset: const Offset(0, 3), // changes position of shadow
),
],
),
constraints: const BoxConstraints(maxWidth: 420),
padding: const EdgeInsets.symmetric(vertical: 30, horizontal: 20),
margin: const EdgeInsets.all(20),
child: SingleChildScrollView(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Flexible(
child: Row(
children: <Widget>[
GestureDetector(
key: AppWidgetKeys.bottomSheetInfoContainerContentKey,
onTap: () => Navigator.pop(context),
child: Image(
image: AssetImage(imagePath),
height: 32.0,
width: 32.0),
),
mediumHorizontalSizedBox,
Flexible(child: modalContent),
],
),
),
smallHorizontalSizedBox,
GestureDetector(
key: AppWidgetKeys.closeInfoBottomSheet,
onTap: () => Navigator.pop(context),
child: const Image(
image: AssetImage(closeIconUrl),
color: Colors.black54,
height: 16.0,
width: 16.0,
),
),
],
),
),
),
);
},
);
}