showChoicesRadioDialog<T> function
Future<T?>
showChoicesRadioDialog<T>(
- BuildContext context, {
- Key? key,
- required Widget title,
- Widget? content,
- required List<
DialogChoice< choices,T> > - Widget? cancelWidget,
- Widget? confirmWidget,
- bool barrierDismissible = false,
- Color? barrierColor,
- bool useSafeArea = true,
- RouteSettings? routeSettings,
Displays a dialog with the choices informed in the parameter choices
using
radio buttons.
To close the dialog, the user must select one of the choices listed on the
screen and click on the OK
action, or when the Cancel
button is clicked.
Example of using the dialog:
List<String> result = await showChoicesCheckBoxDialog<String>(context,
title: Text('Select users'),
choices: [
DialogChoice(
icon: Icon(Icons.person),
title: Text('Ricardo Crescenti'),
subtitle: Text('ricardo.crescenti@gmail.com'),
value: 'ricardo.crescenti'),
DialogChoice(
icon: Icon(Icons.person),
title: Text('Ana Luiza Crescenti'),
subtitle: Text('analuiza.crescenti@gmail.com'),
value: 'analuiza.crescenti'),
DialogChoice(
icon: Icon(Icons.person),
title: Text('Luis Otávio Crescenti'),
subtitle: Text('luisotavio.crescenti@gmail.com'),
value: 'luisotavio.crescenti'),
]);
if (result != null) {
showBasicDialog(context, title: Text('Selected users'), content: Text(result.reduce((value, element) => (value == null ? '' : value + ', ') + element)));
}
Implementation
Future<T?> showChoicesRadioDialog<T>(BuildContext context,
{Key? key,
required Widget title,
Widget? content,
required List<DialogChoice<T>> choices,
Widget? cancelWidget,
Widget? confirmWidget,
bool barrierDismissible = false,
Color? barrierColor,
bool useSafeArea = true,
bool useRootNavigator = true,
RouteSettings? routeSettings}) async {
List<T>? result = await _showChoicesDialog<T>(context,
title: title,
content: content,
choiceType: DialogChoicesType.radio,
choices: choices,
cancelWidget: cancelWidget,
okWidget: confirmWidget,
barrierDismissible: barrierDismissible,
barrierColor: barrierColor,
useSafeArea: useSafeArea,
useRootNavigator: useRootNavigator,
routeSettings: routeSettings);
return (result != null && result.isNotEmpty ? result[0] : null);
}