- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想构建一个表单,其中有多个 TextField
小部件,并希望有一个按钮,该按钮在按下时通过传递从这些字段收集的数据来撰写和发送电子邮件。
为此,我开始构建一个 InheritedWidget
以包含 TextField
-s,并基于构造函数中传递的操作 - 以下代码中尚未包含的功能 -它会通过 toString
方法覆盖返回不同的文本。
据我所知,只要 InheritedWidget
是当前 Widget 树的一部分,它就会保持它的值(因此,例如,如果我从表单导航,它就会被销毁并且值丢失).
下面是我如何使用 InheritedWidget 构建我的 TextForm:
class TextInheritedWidget extends InheritedWidget {
const TextInheritedWidget({
Key key,
this.text,
Widget child}) : super(key: key, child: child);
final String text;
@override
bool updateShouldNotify(TextInheritedWidget old) {
return text != old.text;
}
static TextInheritedWidget of(BuildContext context) {
return context.inheritFromWidgetOfExactType(TextInheritedWidget);
}
}
class TextInputWidget extends StatefulWidget {
@override
createState() => new TextInputWidgetState();
}
class TextInputWidgetState extends State<TextInputWidget> {
String text;
TextEditingController textInputController = new TextEditingController();
@override
Widget build(BuildContext context) {
return new TextInheritedWidget(
text: text,
child: new TextField(
controller: textInputController,
decoration: new InputDecoration(
hintText: adoptionHintText
),
onChanged: (text) {
setState(() {
this.text = textInputController.text;
});
},
),
);
}
@override
String toString({DiagnosticLevel minLevel: DiagnosticLevel.debug}) {
// TODO: implement toString
return 'Név: ' + text;
}
}
这是启动电子邮件发送的按钮:
TextInputWidget nameInputWidget = new TextInputWidget();
TextInheritedWidget inherited = new TextInheritedWidget();
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Örökbefogadás'),
),
body: new Container(
padding: const EdgeInsets.all(5.0),
child: new ListView(
children: <Widget>[
new Text('Név:', style: infoText16BlackBold,),
nameInputWidget,
new FlatButton(onPressed: () {
launchAdoptionEmail(nameInputWidget.toString(), 'kutya');
},
child: new Text('Jelentkezem'))
],
),
),
);
}
我的问题是 nameInputWidget.toString()
只是返回 TextInputWidget(类名),我似乎找不到访问 TextInputWidgetState.toString()
方法。
我知道
TextInheritedWidget
正确保存了 text
值,但我不确定如何通过我的 nameInputWidget
对象访问它。
TextInputWidget
是否应该能够通过 InheritedWidget
用来确定更新和存储哪个 Widget
的上下文来访问数据值?
最佳答案
这是不可能的。 只有 InheritedWidget 的子级才能访问它的属性
解决方案是将 InheritedWidget
放在 Button
的某个位置。但这意味着您必须重构才能考虑到这一点。
关于 Dart/flutter : how to build a form with multiple user input fields easily,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49878445/
我正在尝试设计我的输入:文件。以下 SO 问题让我完成了 95% 的任务。区别在于我使用的是 HTML5 multiple=multiple 属性。 How to style "input file"
我一直在进行一项实验,其中多个调查参与者使用可穿戴技术聆听多首音乐来跟踪多条信息,两个例子是 BPM(心率)和 T(体温)。 目标是衡量每首音乐(以用户反馈为特征)对人类情感的影响。 目前,所有数据都
我使用 jquery 添加/删除输入 我使用append为日期/收入添加多个Tr 我还使用另一个附加来添加多个 td 以获取同一日期 Tr 中的收入 我添加多个日期输入,并在此表中添加多个收入输入 我
在 Android 中,有一种方法可以为项目中的所有模块生成签名的 APK。例如。我有以下项目 Project -- Library Module -- Module 1 -- Modul
我有一个用于网站展示的系统。 展览数据可能来自差异表中的多个数据。 喜欢这个设计: Table [ExhibitionType] used for differentiate category. Ta
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我正在使用 UILocalnotification...收到通知时,当应用程序处于事件模式时我打开 viewcontroller...但是如果同时收到多个通知...我如何打开多个 viewcontro
我遇到的问题是一个策略浏览器游戏,它有 7 种类型的值。问题如下: 我在 $_POST 中获得了 7 个不同的值,包括从索引 unit_1 到索引 unit_7。这 7 个值是 0 到 20 之间的整
这个问题已经有答案了: Search Large Text File for Thousands of strings (3 个回答) 已关闭10 年前。 我想在多个文件上“grep”多个正则表达式。
我经常对如何在我的应用程序中解决这个问题感到矛盾。我使用了很多选项,包括: 一个通用的多选 - 这是我最不喜欢和最很少使用的选项。我发现可用性非常糟糕,一个简单的误点击就会毁了你所有的辛勤工作。 “自
以下是 couchbase 中的示例文档之一。 { "name":"abc", "friends":["a","b","c"], "bestfriends":["x","y","z"] }
我有 4 张 table 。 表组 | ID | NAME | 1 Premium 2 Silver 表用户 | ID | group_id | NAME | 1
我正在开发一个使用第三方服务(Facebook、Google 等)对用户进行身份验证的应用程序。我为每个用户提供一个内部 ID(uuid v4),该 ID 与他们的第 3 方 ID 相关联。现在,我的
我是 bicep 新手,一直在努力实现 Bicep 脚本来部署具有许多主题和订阅的 Azure 服务总线。 我添加的每个主题都有可变数量的订阅(例如,通知主题可能有 3 个订阅,但分析主题可能有 2
我是 bicep 新手,一直在努力实现 Bicep 脚本来部署具有许多主题和订阅的 Azure 服务总线。 我添加的每个主题都有可变数量的订阅(例如,通知主题可能有 3 个订阅,但分析主题可能有 2
我必须创建一个大型数据库。它将保存来自 100 多个设备的数据,并不断更新数据库。每 10 秒,每个设备都会更新数据库中的一行。是为每个设备数据建立一个单独的表还是将数据与设备 ID 放在同一个表中更
我需要在 Activity 开始时显示“正在加载”进度对话框,然后在加载完成后显示一些内容。在我的 onresume 中,我有类似这样的代码: loadThread = true; Thread sh
我有一个 html 表单 当我提交表单时,假设对于 id = 1,数量为 5 或 对于 id = 3,数量为 8。如何在java脚本或jquery中获取这些值并将这些信息提交到服务器?我
我正在创建一个 Mozilla 扩展程序,通过单击“转换按钮”(标签:转换)将网页内容转换为其他语言它的标签被转换为英文,以便单击该按钮(标签:英文)内容被转换为原始形式 我尝试为每个选项卡设置属性“
我正在尝试根据 进行搜索 我通过运行代码从 select 中获取值: for($i=0;$i= '$age_from' AND users.user_age = '$age_from' AND u
我是一名优秀的程序员,十分优秀!