# MaterialDialog
**Repository Path**: elzoq/MaterialDialog
## Basic Information
- **Project Name**: MaterialDialog
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-02-16
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# material_dialog
A wrapper on top of alert dialog provided by flutter.
## Demo
Use this package as a library
-----------------------------
**1. Depend on it**
Add this to your package's pubspec.yaml file:
```
dependencies:
material_dialog: ^0.0.x
```
**2. Install it**
You can install packages from the command line:
with Flutter
```
$ flutter packages get
```
Alternatively, your editor might support flutter packages get. Check the docs for your editor to learn more.
**3. Import it**
Now in your Dart code, you can use:
```
import 'package:material_dialog/material_dialog.dart';
```
How to use
----------
Using Material Dialog is quite easy, all you need to do is
```dart
MaterialDialog(
content: Text(_alertText),
actions: [
FlatButton(
child: Text(
'CANCEL',
style: Theme.of(context).textTheme.button.copyWith(
fontSize: 12.0, color: Theme.of(context).primaryColor),
),
onPressed: () {
Navigator.pop(context, DialogDemoAction.agree);
},
),
FlatButton(
child: Text(
'OK',
style: Theme.of(context).textTheme.button.copyWith(
fontSize: 12.0, color: Theme.of(context).primaryColor),
),
onPressed: () {
Navigator.pop(context, DialogDemoAction.cancel);
},
),
],
);
```
Use below method to show dialog
```dart
void showDemoDialog({BuildContext context, Widget child}) {
showDialog(
context: context,
builder: (BuildContext context) => child,
).then((T value) {
// The value passed to Navigator.pop() or null.
if (value != null) {
_scaffoldKey.currentState.showSnackBar(SnackBar(
content: Text('You selected: $value'),
));
}
});
}
```
## Simple Alert Dialog
```dart
Widget _buildAlertDialog(ThemeData theme, BuildContext context) {
return MaterialDialog(
content: Text(_alertText),
actions: [
FlatButton(
child: Text(
'CANCEL',
style: Theme.of(context).textTheme.button.copyWith(
fontSize: 12.0, color: Theme.of(context).primaryColor),
),
onPressed: () {
Navigator.pop(context, DialogDemoAction.agree);
},
),
FlatButton(
child: Text(
'OK',
style: Theme.of(context).textTheme.button.copyWith(
fontSize: 12.0, color: Theme.of(context).primaryColor),
),
onPressed: () {
Navigator.pop(context, DialogDemoAction.cancel);
},
),
],
);
}
```
## Alert Dialog With Title
```dart
Widget _buildAlertDialogWithTitle(ThemeData theme, BuildContext context) {
return MaterialDialog(
title: Text(_alertTitle),
subTitle: Text('Subtitle'),
content: Text(_alertText),
actions: [
FlatButton(
child: Text(
'CANCEL',
style: Theme.of(context).textTheme.button.copyWith(
fontSize: 12.0, color: Theme.of(context).primaryColor),
),
onPressed: () {
Navigator.pop(context, DialogDemoAction.agree);
},
),
FlatButton(
child: Text(
'OK',
style: Theme.of(context).textTheme.button.copyWith(
fontSize: 12.0, color: Theme.of(context).primaryColor),
),
onPressed: () {
Navigator.pop(context, DialogDemoAction.cancel);
},
),
],
);
}
```
## Alert Dialog With Close & Back Button
```dart
Widget _buildAlertDialogWithCloseAndBackButton(
ThemeData theme, BuildContext context) {
return MaterialDialog(
title: Text(_alertTitle),
subTitle: Text('Subtitle'),
content: Text(_alertText),
enableBackButton: true,
enableCloseButton: true,
onBackButtonClicked: () {
Navigator.pop(context, DialogDemoAction.agree);
},
onCloseButtonClicked: () {
Navigator.pop(context, DialogDemoAction.cancel);
},
actions: [
FlatButton(
child: Text(
'CANCEL',
style: Theme.of(context).textTheme.button.copyWith(
fontSize: 12.0, color: Theme.of(context).primaryColor),
),
onPressed: () {
Navigator.pop(context, DialogDemoAction.agree);
},
),
FlatButton(
child: Text(
'OK',
style: Theme.of(context).textTheme.button.copyWith(
fontSize: 12.0, color: Theme.of(context).primaryColor),
),
onPressed: () {
Navigator.pop(context, DialogDemoAction.cancel);
},
),
],
);
}
```
## Alert Dialog With Children
```dart
Widget _buildAlertDialogWithChildren(
ThemeData theme, BuildContext context, bool isFullScreen) {
return MaterialDialog(
borderRadius: 8.0,
enableFullHeight: isFullScreen,
enableFullWidth: isFullScreen,
enableCloseButton: true,
closeButtonColor: Colors.white,
headerColor: Theme.of(context).primaryColor,
title: Text(
_alertTitle,
style: TextStyle(
color: Colors.white,
fontSize: 18.0,
),
),
subTitle: Text(
'Subtitle',
style: TextStyle(
color: Colors.white70,
fontSize: 12.0,
),
),
onCloseButtonClicked: () {
Navigator.pop(context, DialogDemoAction.cancel.toString());
},
children: [
Text(
_alertTitle,
style: TextStyle(
fontSize: 18.0,
),
),
SizedBox(height: 8.0),
Text(
_alertText,
style: TextStyle(
fontSize: 12.0,
),
),
SizedBox(height: 16.0),
TextField(
decoration: InputDecoration(hintText: 'Enter Username'),
),
],
actions: [
FlatButton(
child: Text(
'CANCEL',
style: Theme.of(context).textTheme.button.copyWith(
fontSize: 12.0, color: Theme.of(context).primaryColor),
),
onPressed: () {
Navigator.pop(context, DialogDemoAction.cancel.toString());
},
),
FlatButton(
child: Text(
'OK',
style: Theme.of(context).textTheme.button.copyWith(
fontSize: 12.0, color: Theme.of(context).primaryColor),
),
onPressed: () {
Navigator.pop(context, DialogDemoAction.agree.toString());
},
)
],
);
}
```
List of params
--------------
| Property | Type | Default Value | Description |
|-----------------------|--------------|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| title | Widget | null | The (optional) title of the dialog is displayed in a large font at the top of the dialog. |
| subTitle | Widget | null | The (optional) subtitle of the dialog is displayed below title of the dialog. |
| content | Widget | null | The (optional) content of the dialog is displayed in the center of the dialog in a lighter font. |
| actions | List | null | The (optional) set of actions that are displayed at the bottom of the dialog. |
| children | List | null | The (optional) content of the dialog is displayed in a [SingleChildScrollView] underneath the title. |
| headerColor | Color | null | The (optional) header color is displayed in the header background. |
| backButtonColor | Color | Colors.white | The (optional) back button color. By default its set to white. |
| closeButtonColor | Color | Colors.white | The (optional) close button color. By default its set to white. |
| onBackButtonClicked | VoidCallback | null | A callback function to get back button event from dialog. If back button is enabled this callback has to be provided in-order to get callbacks. |
| onCloseButtonClicked | VoidCallback | null | A callback function to get close button event from dialog. If close button is enabled this callback has to be provided in-order to get callbacks. |
| enableBackButton | bool | false | The (optional) value to enable/disable back button for a dialog. |
| enableCloseButton | bool | false | The (optional) value to enable/disable close button for a dialog. |
| enableFullWidth | bool | true | The (optional) value to stretch dialog to its max width. |
| enableFullHeight | bool | false | The (optional) value to stretch dialog to its max height. |
| borderRadius | double | 10.0 | The (optional) border radius of a dialog. by default its 10.0. |
Thanks
------
If you liked my work, don’t forget to ⭐ star the repo to show your support.