showInputDialog static method
void
showInputDialog({
- required BuildContext context,
- required String title,
- String? hitText,
- dynamic onSubmit()?,
- String? defaultValue,
- String? suffixText,
Shows a dialog which can accept input text
title title for the dialog
hitText caption for the edit field
onSubmit function called when the Submit button is pressed
defaultValue the default value to be set into the edit field
Implementation
static void showInputDialog({
required final BuildContext context,
required final String title,
final String? hitText,
final Function(TextEditingController)? onSubmit,
final String? defaultValue,
final String? suffixText,
}) {
final TextEditingController controller =
TextEditingController(text: defaultValue);
ESMessage.customDialog(
context: context,
title: title,
onSubmit: () {
if (onSubmit != null) onSubmit(controller);
},
content: () {
return Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
const SizedBox(height: 15),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 5),
child: TextField(
decoration: InputDecoration(
isDense: true,
border: const OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10))),
filled: false,
hintStyle: const TextStyle(color: Colors.grey),
hintText: hitText ?? '',
labelText: hitText ?? '',
suffixText: suffixText,
suffixIcon: () {
return InkWell(
child: const Icon(Icons.cancel),
onTap: () => controller.clear(),
);
}(),
),
autofocus: true,
controller: controller,
),
),
],
);
}(),
);
// Make the field as selected by default
controller.selection =
TextSelection(baseOffset: 0, extentOffset: controller.text.length);
}