quickDouble function
Future<double?>
quickDouble({
- required BuildContext context,
- TextStyle textStyle = const TextStyle(color: Colors.white),
- Color backgroundColor = Colors.black,
- Widget? title,
- EdgeInsets? inputFieldPadding,
- EdgeInsets? inputFieldMargin,
- Language? language,
Implementation
Future<double?> quickDouble({
required BuildContext context,
TextStyle textStyle = const TextStyle(
color: Colors.white,
),
Color backgroundColor = Colors.black,
Widget? title,
EdgeInsets? inputFieldPadding,
EdgeInsets? inputFieldMargin,
Language? language,
})async{
TextEditingController controller = TextEditingController();
bool submitted = false;
await showDialog(
context: context,
builder: (ctx)=> AlertDialog(
title: title,
content: _SimplifiedTextField(
controller: controller,
backgroundColor: backgroundColor,
title: title,
inputFieldPadding: inputFieldPadding,
inputFieldMargin: inputFieldMargin,
language: language,
textStyle: textStyle,
inputType: TextInputType.number,
),
actions: [
TextButton(
onPressed: (){
Navigator.pop(context);
},
child: TranslatableText(
options: [
TranslateOption(language: Languages.english, text: "cancel"),
TranslateOption(language: Languages.spanish, text: "cancelar"),
],
displayLanguage: language ?? Languages.english,
),
style: ButtonStyle(
overlayColor: MaterialStateProperty.all(backgroundColor),
),
),
TextButton(
onPressed: (){
submitted = true;
Navigator.pop(context);
},
child: TranslatableText(
options: [
TranslateOption(language: Languages.english, text: "submit"),
TranslateOption(language: Languages.spanish, text: "someter"),
],
displayLanguage: language ?? Languages.english,
style: textStyle,
),
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(backgroundColor),
),
),
],
),
);
if(submitted){
double submittedDouble;
try{
submittedDouble = double.parse(controller.text);
return submittedDouble;
}catch(err){
return null;
}
}else{
return null;
}
}