当我键入文本并点击“确定”或单击后退按钮隐藏键盘时,输入的值消失
添加文本编辑控制器
class ChatCepBottomSheet extends StatelessWidget {
final TextEditingController _cepController = TextEditingController();
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
TextFormField(
controller: _cepController,
),
SizedBox(height: 32),
Button(
buttonText: 'Search',
tapHandler: () {},
)
],
);
}
}
Run Code Online (Sandbox Code Playgroud)
我预计输入的文本会保留在文本控制器中
小智 8
当键盘打开时,它会更改屏幕行为,当我们关闭它时,它会重新渲染屏幕,并且由于该字段由空构造函数再次初始化。
TextEditingController _cepController = TextEditingController();
Run Code Online (Sandbox Code Playgroud)
有状态或无状态,如果您遇到键盘打开等此类问题,请尝试在final TextEditingController _cepController = TextEditingController();此类之外定义,这并不重要
您尝试做的事情不适用于 Flutter。您正在使用一个stateless小部件并尝试保留状态(数据),这根据定义是不可能的。您需要使用stateful小部件重写您的类 - https://api.flutter.dev/flutter/widgets/StatefulWidget-class.html。
请参阅下面的示例:
import 'package:flutter/material.dart';
class ChatCepBottomSheet extends StatefulWidget {
@override
_ChatCepBottomSheetState createState() => _ChatCepBottomSheetState();
}
class _ChatCepBottomSheetState extends State<ChatCepBottomSheet> {
final TextEditingController _cepController = TextEditingController();
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
TextFormField(
controller: _cepController,
),
SizedBox(height: 32),
Button( //choose a button class or custom class
buttonText: 'Search',
tapHandler: () {},
)
],
);
}
}````
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5989 次 |
| 最近记录: |