我想为文本字段提供一个初始值,并重新绘制一个空值以清除文本。用Flutter的api实现这一点的最佳方法是什么?
当前回答
如果你正在使用TextEditingController,然后设置文本为它,如下所示
TextEditingController _controller = new TextEditingController();
_controller.text = 'your initial text';
final your_text_name = TextFormField(
autofocus: false,
controller: _controller,
decoration: InputDecoration(
hintText: 'Hint Value',
),
);
如果你不使用任何TextEditingController,那么你可以直接使用initialValue如下
final last_name = TextFormField(
autofocus: false,
initialValue: 'your initial text',
decoration: InputDecoration(
hintText: 'Last Name',
),
);
更多参考TextEditingController
其他回答
class _YourClassState extends State<YourClass> {
TextEditingController _controller = TextEditingController();
@override
void initState() {
super.initState();
_controller.text = 'Your message';
}
@override
Widget build(BuildContext context) {
return Container(
color: Colors.white,
child: TextFormField(
controller: _controller,
decoration: InputDecoration(labelText: 'Send message...'),
),
);
}
}
由于没有一个答案提到它,TextEditingController应该在使用后被丢弃。如:
class MyWidget extends StatefulWidget {
const MyWidget({Key? key}) : super(key: key);
@override
MyWidgetState createState() => MyWidgetState();
}
class MyWidgetState extends State<MyWidget> {
final myController = TextEditingController(text: "Initial value");
@override
Widget build(BuildContext context) {
return TextField(
controller: myController,
);
}
@override
void dispose() {
// dispose it here
myController.dispose();
super.dispose();
}
}
当你使用TextEditingController
如果使用TextEditingController,请将其文本字段设置为所需的值
TextEditingController txtController = TextEditingController()..text = 'Your initial text value';
TextField( controller: txtController ..... )
当你不使用TextEditingController
如果你没有使用texteditingcontroller,直接从TextField小部件使用initialValue字段:
TextFormField( initialValue: "Your initial text value" )
如果您使用文本表单字段并将数据从上一页传递到下一页文本表单字段,请使用此选项
class ProfilePage extends StatefulWidget {
late final String fname;
ProfilePage({required this.fname});
@override
State<ProfilePage> createState() => _ProfilePageState();
}
class _ProfilePageState extends State<ProfilePage> {
final _form = GlobalKey<FormState>();
late var FullNameController = TextEditingController(text: widget.fname);
}
TextEdittingController _controller = new TextEdittingController(text: "your Text");
or
@override
void initState() {
super.initState();
_Controller.text = "Your Text";
}
推荐文章
- 在Flutter中向有状态小部件传递数据
- 未处理异常:ServicesBinding.defaultBinaryMessenger在绑定初始化之前被访问
- 出现键盘时,Flutter小部件将调整大小。如何预防这种情况?
- 颤振-换行文本
- 如何在Dart中四舍五入到小数点后的给定精度程度?
- 添加一个启动屏幕颤振应用程序
- 在flutter中等同于wrap_content和match_parent ?
- 多行文本字段在扑动
- 如何在颤振文本下划线
- 在Dart中命名参数和位置参数之间有什么区别?
- 如何用Dart将字符串解析为数字?
- 如何在颤振的一些延迟后运行代码?
- 颤动删除appbar上的返回按钮
- 在构建过程中调用setState()或markNeedsBuild
- 我如何添加阴影的小部件颤振?