- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在构建一个 flutter 应用程序,那里有一个 Register
表单。我正在使用 TextFormFields
,下面是我的代码。
import 'package:flutter/material.dart';
class RegisterPage extends StatelessWidget {
final borderColorGreen = const Color(0xff339966);
TextEditingController nameTxtController =TextEditingController();
TextEditingController emailTxtController =TextEditingController();
TextEditingController mobileTxtController =TextEditingController();
TextEditingController passwordTxtController =TextEditingController();
TextEditingController confirmPasswordTxtController =TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("assets/images/background_login_5.jpg"),
fit: BoxFit.cover,
),
),
child: ListView(
children: <Widget>[
_buildTitleSection(),
_buildInputFields("Name",nameTxtController),
_buildInputFields("Email",emailTxtController),
_buildInputFields("Mobile",mobileTxtController),
_buildInputFields("Password",passwordTxtController),
_buildInputFields("Confirm Password",confirmPasswordTxtController),
_buildRegisterButton(),
],
),
),
);
}
Widget _buildTitleSection() {
return Container(
margin: EdgeInsets.only(top: 40),
padding: EdgeInsets.all(32),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
"something.xyz",
style: TextStyle(
color: borderColorGreen,
fontWeight: FontWeight.w900,
fontSize: 25,
),
),
],
));
}
Widget _buildInputFields(String label, TextEditingController textController) {
return Container(
margin: EdgeInsets.only(left: 20, bottom: 20),
child: Column(
children: <Widget>[
Container(
padding: EdgeInsets.only(right: 20),
child: Row(
children: <Widget>[
Flexible(
child: TextFormField(
controller: textController,
style: new TextStyle(color: Colors.white),
decoration: InputDecoration(
labelText: label,
fillColor: Colors.white,
labelStyle: TextStyle(
color: Colors.white, fontWeight: FontWeight.w600),
enabledBorder: OutlineInputBorder(
borderSide: const BorderSide(
color: Colors.white30, width: 2.0),
borderRadius: BorderRadius.circular(25.0),
),
),
),
),
],
),
),
],
));
}
Widget _buildRegisterButton() {
return Container(
margin: EdgeInsets.only(top: 10, right: 20, left: 20),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Flexible(
child: SizedBox(
width: double.infinity, // match_parent
child: RaisedButton(
child: Text(
"Create Account",
style: TextStyle(
color: Colors.white,
fontSize: 18,
fontWeight: FontWeight.normal),
),
shape: RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(30.0)),
color: borderColorGreen,
onPressed: () {},
)))
],
),
);
}
}
当我点击 TextField
时,键盘打开,我可以输入文本。但是,如果我按手机的后退按钮 关闭键盘,那么我从所有字段输入的文本。我指的是 Android 手机中可用的硬件后退按钮。
表单是可滚动的,在向 TextField
输入文本后,如果我单击另一个 TextField
,文本将保留在那里。如果我按下后退按钮关闭键盘,表单中的所有文本都会消失。
我该如何解决这个问题?
最佳答案
请将您的小部件更改为 StatefulWidget
,这样不会导致 Controller 重置。
希望对您有所帮助!
关于android - 关闭键盘时 TextFormField 数据消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55195779/
请帮助解决我的 2 个问题。 第一个问题。为什么文本值消失?[已修复] @Praneeth我添加了动图 please click 我的代码就是这样用的 在我的小部件中,我调用了 UsernameTex
这是我目前面临的情况,因为我希望红色文本出现在该行的下方而不是上方,因为它看起来有点丑陋,如下所示: new Container( width: Media
当用户输入第一个 TextFormField 时,我试图更改第二个 TextFormField 的值。 TextEditingController txt1 = TextEditingControl
我正在尝试创建一个带有列的表单。 喜欢,表单 => 列 => 文本字段, TextFields 将有验证器。此外,TextFields 将进行装饰。 但是当我点击 RaisedButton 时,我找不
我需要一个带有 suffixIcon 的 textField,但是单击该图标后,我不需要打开键盘。如果没有 suffixIcon,我该如何做呢? 最佳答案 Container( child: St
当我按下按钮时,TextFormField 将被聚焦并出现键盘。如何解决这个问题? 代码如下: TextFormField( controller: code,
这是我的密码字段代码: TextFormField( obscureText: isObscure, decoration: InputDecoration( suffix: Text
目标是显示/隐藏清除 Flutter TextFormField 上的字段的 suffixIcon。只有当框中有文本时它才应该可见。 该字段如下所示: TextFormField(
我正在编写一个扫描仪应用程序,该应用程序将安装在运行 Android 的扫描仪上。应用程序内部有一个 TextFormField 等待输入扫描或粘贴在里面的文本以进行其他 API 调用。 但是我没有找
... @override Widget build(BuildContext context) { return MaterialApp( title: 'haha',
我想将充满红色背景的框移动到空框的位置。 换句话说,我想在 TextFormField 结束的点旁边插入一个容器。 这是可以在 Flutter 中实现的东西吗?还是没有办法? - 更新 我实际上想在文
当我达到的极限时TextFormField 文字消失了…… 我尝试了多个配置但仍然无法正常工作,我不知道为什么。 Dialog( shape: RoundedRectangleBord
当我写入的文本多于此输入的宽度时,我有一个电子邮件输入文本字段,其余文本不可见。当我输入此文本表单字段时,有没有办法进行水平滚动? 下图描述了我想要的行为。 编辑:我的代码 Container(
如果我启用并聚焦之前禁用的 TextFormField,我没有看到闪烁的光标。在此示例中,TextFormField 最初是禁用的,如 _enabled 状态变量所示,当您单击启用按钮时,该字段已启用
如果在我的文本表单字段上创建了一个值,我将尝试设置一个初始值。当我运行我的代码时: final apiField = TextFormField( controller: apiFieldCont
我对 Flutter 有点陌生所以我不知道这是否是更新从服务器收集的数据的“正确”方式。就我而言,我正在做的是(我的应用程序代码很长,我认为下面的描述就足够了): 让用户为给定日期创建自定义表单。 让
TL;博士 maxLength在 TextFormField有时允许超过指定限制的字符数。为什么会发生这种情况? 我正在尝试创建一个 Form将用户输入的数据提供给我的应用程序。作为其中的一部分,我有
我正在尝试重新创建此搜索输入,但是如果将其添加到较小的位置会遇到麻烦,但是如果添加prefixIcon,则高度会增加,但似乎无法控制它。 这就是我现在所拥有的。 我正在使用一行,因为我也需要在输入字段
我正在尝试使编辑字符串列表成为可能。问题是,当我通过 IconButton 删除列表项时,TextField 会重建,但不知何故仍然具有旧值。通过调试,我发现我的字符串列表已正确更新,这意味着删除的字
如果在 TextFormField 中验证发现错误消息,我该如何显示? 我正在使用 Stepper 类来处理用户注册,当尝试使用 setState 实现基本验证时,当前正在验证的文本字段中没有显示错误
我是一名优秀的程序员,十分优秀!