【发布时间】:2021-08-03 11:23:14
【问题描述】:
我正在开发一个名为“Alertbox”的自定义对话框,用户在其中将名称插入到文本字段中,然后在他按下按钮后,名为“addTeam”的函数从字符串中创建了一个团队。
这就是我创建对话框“Alertbox”的方式:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:trainings_app/config/palette.dart';
class Alertbox extends StatelessWidget {
final Function addTeamFunction;
const Alertbox(this.addTeamFunction);
@override
Widget build(BuildContext context) {
return Dialog(
backgroundColor: Colors.transparent,
elevation: 0,
insetPadding: EdgeInsets.all(10),
child: Center(
child: Container(
decoration: new BoxDecoration(
borderRadius: new BorderRadius.all(const Radius.circular(20)),
color: Colors.white,
),
width: 350,
height: 200,
child: Row(
children: [
SizedBox(width: 12),
Expanded(
child: TextField(
textAlign: TextAlign.center,
autofocus: true,
),
),
SizedBox(width: 12),
ElevatedButton(
onPressed: () => addTeamFunction(),
child: const Text('✓'),
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Palette.orange),
),
),
SizedBox(width: 8),
],
),
),
),
);
}
}
我在这里使用它:
void newTeam() {
showDialog<AlertDialog>(
context: context,
builder: (BuildContext context) {
return Alertbox(() {
Navigator.of(context).pop();
});
},
);
}
void addTeam(String name) {
setState(() {
teams.add(name);
});
Navigator.of(context).pop();
sharedPreferences.setStringList('teams', teams);
}
但我找不到将文本字段中的输入解析到需要它的函数“addTeam”的方法。谁能帮帮我?
【问题讨论】:
-
您想在 textfield 中添加文本,当您按下正确的按钮时,此文本会显示在 alertbox 上?
-
是的,在警报框中有一个文本字段,当我在警报框中按下按钮时,该字段的输入应该转到“addTeam”函数
标签: flutter input dialog textfield