用户登录

先用一个 Theme 小部件 .. 设置一下它的 data 属性 .. 值是 Theme.of context .. copyWith .. 里面重新设置一下主题的 primaryColor .. 颜色可以是黑色 ..

小部件的 child 是一个 TextField,文本字段 .. 给它添加一个 decoration .. 它的值是一个 InputDecoration .. labelText .. 字段的标签设置成 Title .. 然后再把 filled 设置成 true ..

Subject

下面在类里面添加一个 Subject .. 类型是 PublishSubject.. 控制的数据的类型是 String .. 名字可以是 _textFieldSubject ..

然后在 initState 里面 .. 设置一下 _textFieldSubject 的值 .. 新建一个 PublishSubject .. 数据类型是 String ..

不再需要的 subject 可以关掉 .. 执行一下 subject 上面的 close 方法 ..

给它再添加一个监听 .. 用一下 _textFieldSubject 的 listen 方法 .. 设置一下有数据的时候要做的事情 .. 可以把这个数据输出到控制台上 ..

再找到之前添加的这个 TextField .. 先设置一下 onChanged 这个回调 .. 文本框的值有变化的时候会执行它设置的方法 .. 接收一个 value 参数 .. 方法里面,用一下 _textFieldSubject 上的 add ,去把文本框里的值添加到 Observable 上 .. 这个值的前面可以加上一个 input 前缀 .. 后面是 $value ..

复制一份 .. 再添加一个 onSubmitted .. 提交的时候会执行这个回调 .. 做的事情也是往 Observable 上添加文本框里的值... 带个前缀是 submit ...

测试

执行一下 hot restart ...

然后在模拟器上试一下 .. 在这个文本框里输入点内容 .. 原本应该在控制台输出在文本框里的值 .. 这里没输出 .. 应该是因为我们直接在 initState 里面关掉了 subject .. 这里需要换个地方关掉 subject ..

在类里面添加一个 dispose 方法 ..

在这个方法里,我们可以关掉不需要的 subject ... 用一下 subject 上的 close 方法 ..

hot restart ...

再到模拟器上试一下 ...

现在,每次文本框里的值发生变化的时候,这个文本框里的值都会被输出到控制台上 ..

按一下回车 .. 执行的是文本框的 onSubmitted ... 做的事情就是往 Observable 上添加文本框里的值,在这个值的前面我们添加了一个前缀,submit .. .. 有数据要做的事情就是把这个数据输出到控制台上 .. 所以在控制台上你会看到一个 submit: 后面是当前文本框里的值 ..

准备一个文本框往 Observable 上添加数据《 Flutter 移动应用:RxDart 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点