aman-satu-flutter/lib/widgets/dialog/modal_select_dialog.dart

96 lines
2.7 KiB
Dart

import 'package:flutter/material.dart';
class DialogModalSelect extends StatefulWidget {
final String? title;
final String? descriptions;
final String? text;
const DialogModalSelect({Key? key, this.title, this.descriptions, this.text})
: super(key: key);
@override
_DialogModalSelectState createState() => _DialogModalSelectState();
}
class _DialogModalSelectState extends State<DialogModalSelect> {
double padding = 8.0;
double avatarRadius = 16.0;
@override
Widget build(BuildContext context) {
return Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(padding),
),
elevation: 0,
backgroundColor: Colors.transparent,
child: contentBox(context),
);
}
contentBox(context) {
return Stack(
children: <Widget>[
Container(
padding: EdgeInsets.only(
left: padding,
top: avatarRadius + padding,
right: padding,
bottom: padding),
margin: EdgeInsets.only(top: avatarRadius),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
color: Colors.white,
borderRadius: BorderRadius.circular(padding),
boxShadow: [
BoxShadow(
color: Colors.black, offset: Offset(0, 10), blurRadius: 10),
]),
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text(
widget.title ?? '',
style: TextStyle(fontSize: 22, fontWeight: FontWeight.w600),
),
SizedBox(
height: 15,
),
Text(
widget.descriptions ?? '',
style: TextStyle(fontSize: 14),
textAlign: TextAlign.center,
),
SizedBox(
height: 22,
),
Align(
alignment: Alignment.bottomRight,
child: FlatButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text(
widget.text ?? '',
style: TextStyle(fontSize: 18),
)),
),
],
),
),
Positioned(
left: padding,
right: padding,
child: CircleAvatar(
backgroundColor: Colors.transparent,
radius: avatarRadius,
child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(avatarRadius)),
child: Image.asset("assets/model.jpeg")),
),
)
],
);
}
}