Flutter:输入文本后自动清除文本字段
Flutter : Textield clear automaticly after input text
我在使用提供程序的 flutter 应用程序中有这个文本字段,如图所示:
getPhoneNumberScreen(size, context) {
var remianheight = size.height - 70;
TextEditingController _phoneNumber = TextEditingController();
TextEditingController _code = TextEditingController();
return TextField(
keyboardType: TextInputType.number,
controller:
!authProvider.isPhoneNumberInserted ? _phoneNumber : _code,
decoration: InputDecoration(
isDense: true,
hintText: !authProvider.isPhoneNumberInserted
? 'Phone Number'
: 'Verification Code',
enabledBorder: UnderlineInputBorder(
borderSide: const BorderSide(
color: Color(0x00000000),
width: 1,
),
borderRadius: BorderRadius.circular(30),
),
focusedBorder: UnderlineInputBorder(
borderSide: const BorderSide(
color: Color(0x00000000),
width: 1,
),
borderRadius: BorderRadius.circular(30),
),
filled: true,
fillColor: ColorManager.helibi,
contentPadding:
const EdgeInsetsDirectional.fromSTEB(20, 15, 0, 15),
prefixIcon: const Icon(
Icons.phone_sharp,
color: Color(0xFF8F8F8F),
)),
);
}
当我尝试输入一些文字时,完成后就清楚了。
还有如何让textfild上移显示。
据我从你的问题中了解到,你想在完成后清除你的 TextField,并且你还想专注于你的 TextField:
对于第一个问题:您可以简单地为此创建 TextEditingController。
TextEditingController phoneController = new TextEditingController();
将此控制器分配到您的 TextField 中:
controller : phoneController,
并且在完成函数上调用:
phoneController.clear();
或者尝试在您的提供商内部实现它。
要为 TextField 请求焦点,您必须为此实现 FocusNode。
FocusNode phoneFocusNode = new FocusNode();
在您的 TextField 中实现它:
focusNode : phoneFocusNode,
通过调用将请求集中在任何你想要的地方:
phoneFocusNode.requestFocus();
错误是文本字段的控制器必须在方法之外:
TextEditingController _phoneNumber = TextEditingController();
TextEditingController _code = TextEditingController();
getPhoneNumberScreen(size, context) {
var remianheight = size.height - 70;
return TextField(
keyboardType: TextInputType.number,
controller:
!authProvider.isPhoneNumberInserted ? _phoneNumber : _code,
decoration: InputDecoration(
我在使用提供程序的 flutter 应用程序中有这个文本字段,如图所示:
getPhoneNumberScreen(size, context) {
var remianheight = size.height - 70;
TextEditingController _phoneNumber = TextEditingController();
TextEditingController _code = TextEditingController();
return TextField(
keyboardType: TextInputType.number,
controller:
!authProvider.isPhoneNumberInserted ? _phoneNumber : _code,
decoration: InputDecoration(
isDense: true,
hintText: !authProvider.isPhoneNumberInserted
? 'Phone Number'
: 'Verification Code',
enabledBorder: UnderlineInputBorder(
borderSide: const BorderSide(
color: Color(0x00000000),
width: 1,
),
borderRadius: BorderRadius.circular(30),
),
focusedBorder: UnderlineInputBorder(
borderSide: const BorderSide(
color: Color(0x00000000),
width: 1,
),
borderRadius: BorderRadius.circular(30),
),
filled: true,
fillColor: ColorManager.helibi,
contentPadding:
const EdgeInsetsDirectional.fromSTEB(20, 15, 0, 15),
prefixIcon: const Icon(
Icons.phone_sharp,
color: Color(0xFF8F8F8F),
)),
);
}
当我尝试输入一些文字时,完成后就清楚了。 还有如何让textfild上移显示。
据我从你的问题中了解到,你想在完成后清除你的 TextField,并且你还想专注于你的 TextField:
对于第一个问题:您可以简单地为此创建 TextEditingController。
TextEditingController phoneController = new TextEditingController();
将此控制器分配到您的 TextField 中:
controller : phoneController,
并且在完成函数上调用:
phoneController.clear();
或者尝试在您的提供商内部实现它。
要为 TextField 请求焦点,您必须为此实现 FocusNode。
FocusNode phoneFocusNode = new FocusNode();
在您的 TextField 中实现它:
focusNode : phoneFocusNode,
通过调用将请求集中在任何你想要的地方:
phoneFocusNode.requestFocus();
错误是文本字段的控制器必须在方法之外:
TextEditingController _phoneNumber = TextEditingController();
TextEditingController _code = TextEditingController();
getPhoneNumberScreen(size, context) {
var remianheight = size.height - 70;
return TextField(
keyboardType: TextInputType.number,
controller:
!authProvider.isPhoneNumberInserted ? _phoneNumber : _code,
decoration: InputDecoration(