showEditDialog function
Implementation
Future<String?> showEditDialog(
BuildContext context,
String title, {
String content = "",
}) async {
var controller = TextEditingController(text: content);
bool? res = await showDialog(
context: context,
builder: (BuildContext context) {
return Center(
child: Container(
margin: EdgeInsets.symmetric(
horizontal: MediaQuery.of(context).size.width / 5,
),
padding: EdgeInsets.all(15),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(5),
),
child: SingleChildScrollView(
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
title,
style: TextStyle(fontWeight: FontWeight.bold),
),
),
SizedBox(height: 5),
TextField(
controller: controller,
keyboardType: TextInputType.number,
inputFormatters: [
FilteringTextInputFormatter.allow(RegExp("[0-9]")),
],
decoration: InputDecoration(
isCollapsed: true,
hintText: title,
isDense: true,
border: InputBorder.none,
),
),
SizedBox(height: 10),
Row(
children: [
Expanded(
child: GestureDetector(
onTap: () {
Navigator.pop(context);
},
child: Container(
padding: EdgeInsets.symmetric(vertical: 10),
decoration: BoxDecoration(
color: Colors.grey,
borderRadius: br5,
),
child: Center(
child: Text(
"取消",
style: TextStyle(color: Colors.white),
),
),
),
),
),
SizedBox(width: 5),
Expanded(
child: GestureDetector(
onTap: () {
Navigator.pop(context, true);
},
child: Container(
padding: EdgeInsets.symmetric(vertical: 10),
decoration: BoxDecoration(
color: Colors.blue,
borderRadius: br5,
),
child: Center(
child: Text(
"确定",
style: TextStyle(color: Colors.white),
),
),
),
),
),
],
),
],
),
),
),
);
},
);
if (res == true) {
return controller.text;
} else {
return null;
}
}