问题描述

前提:
使用了Provider + 输入框的形式,当输入框的数据都输入时,提交按钮显示可用,否则不可点击。

定义了一个Model用于保存是否可点击状态

class StatusModel extends ChangNotifier {bool _canSubmit = false;bool get canSubmit = _canSubmit;set canSubmit(bool isCansubmit) {if (_canSubmit == isCansubmit) {return }_canSubmit = isCanSubmit;notifyListeners();}
}

当输入时,校验参数,可点击时,会更新按钮状态。

当更新按钮状态时,正在进行输入工作的输入框,光标发生了变化(根据实现逻辑不同,会跳到不同的位置)。

但是想要的效果是,保留在原来输入的位置。

问题追查

想要的效果其实是,在按钮可点击时,只更新按钮,不需要重构整个页面,但是实际情况是,当输入状态发生变化时,整个页面都被重构了。

因为Model不止封装了按钮状态,所有监听此Model的地方,都会更新。

知道了这个就简单了。

问题解决

Button单独封装在一个Selector中,只监听按钮状态。

其他监听数据的地方,使用select进行数据监听,而不是watch 的方式进行全局监听。

Flutter TextField输入文字时,若页面刷新,会导致光标位置发生变化。相关推荐

  1. 输入文字时自动带空格解决办法

    输入文字时自动带空格解决办法: 把输入法中的全角改为半角,即: 把 改为

  2. 为什么CAD输入文字时文字特别大但输入后就消失了?

    CAD绘图过程中,在CAD输入文字时输入框中的文字很大但是输入之后文字就消失了,这是为什么呢?这是由于CAD输入文字太小,CAD为了方便大家编辑文字,当文字太小看不清时,便会将文字放大.那么如何解决这 ...

  3. 网站输入正确账号密码页面刷新一下_淘宝开店卖家如何正确发布宝贝?先学会这3个技巧,不要再迷茫了...

    >>阅读前,请点击右上角[关注]口袋电商课,让你少走一年弯路! 当自己店铺的产品较少,发布宝贝显得很简单.但当自己的店铺单品很多时,这项工作就显得繁琐,光是产品的主图和详情页就够让人头大, ...

  4. 解决“word输入文字时光标后的字会自动删除”问题

    word中输入字时后面的老是被删掉,这是word使用了改写的功能,以word2003为例,去掉该功能的方法如下: 方法一: 在word界面底下的状态栏里,双击"改写"的按钮,让它变 ...

  5. 网站输入正确账号密码页面刷新一下_Folx的密码管理保存网站登陆信息

    Folx的密码管理保存网站登陆信息 大家下载某个文件时,需要登录文件所在的网站才能进行下载,否则哪怕有下载链接也无权限进行文件下载,那Folx遇到这种情况是否就无法使用了呢?Folx的密码管理也能保存 ...

  6. 调整窗口大小时进行页面刷新(设定定时器)

    1 var timeout = null;//onresize触发次数过多,设置定时器 2 window.onresize = function () { 3 clearTimeout(timeout ...

  7. word2019输入文字时很卡解决方法。

    最近新安装了word2019,网上很多办法都试过了,卸载重新安装了很多次也不起作用.最终才发现就需要简单的这一步操作: 第一步,打开word2019,找到文件,点击一下. 第二步,找到选项,点击选项 ...

  8. Window系统触摸板防误撞 - 输入文字时再也不用担心光标找不到了

    这里写自定义目录标题 Window系统触摸板防误撞 小小软件解决 参考 Window系统触摸板防误撞 大家好!随着电脑笔记本技术与硬件的发展,当前触摸板变的越来越好用,对于日常办公来说,基本完全替代鼠 ...

  9. 输入文字时自动删除后面文字的解决办法

    出现问题的原因:不小心触碰到了Insert键 解决办法: 再按一下Insert键即可

  10. Flutter TextField 边框样式以及提示文本 、Flutter输入文本TextField

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. github? 你可能需要 百度同步 CSDN 网易云课堂教程 掘金 知乎 Flutter系列文章 头条同步 本文章首发于微信公众号( ...

最新文章

  1. 平衡二叉树-FHQ Treap(无旋平衡树)c/c++代码实现
  2. rowspan和colspan用法详解
  3. c++ new一个结构体_「C/C++」构造类型及应用:数组、结构体、共用体、枚举类型...
  4. 十、封装python3读写ini文件类
  5. 竞争神经网络与SOM神经网络及其在矿井突水水源判别的应用
  6. 仿各大app的商品详情页购买信息弹幕
  7. EMI (电磁干扰)
  8. 洛谷3823 [NOI2017] 蚯蚓排队 【哈希】
  9. Springboot 集成帆软报表(finereport10.0)详细步骤
  10. 重磅!超详细的 JS 数组方法整理出来了
  11. 阿里巴巴瓴羊CEO朋新宇走进清涧县,点亮“橙星计划”第一颗星
  12. 解决zui-upload(ZUI: 文件上传 - v1.8.1)移动端上传组件的bug
  13. 网站漏洞修复 被上传webshell漏洞修补
  14. 智能自动感应手消毒器方案开发
  15. 1-开发环境--android文件系统的结构
  16. 关于课题的一点思考(基于多生理信号的情绪识别)
  17. Empty suite
  18. Google File System中文版
  19. 实验五——数据库设计实验
  20. AcWing 715. 余数

热门文章

  1. 计算机网络路由器配置IP地址,电脑查看路由器设置网址(登录IP地址)的方法
  2. 光猫的ip地址段和路由器ip地址段互换
  3. svn访问路径提示Unable to connect to a repository at url
  4. mc服务器信息监控,Splunk搭建MC监控控制台
  5. 【Unity3D开发小游戏】《文字冒险游戏》Unity开发教程
  6. pidgin qq_Pidgin入门:Skype的开源替代品
  7. c语言怎么从键盘输入坐标,C语言从键盘输入数据
  8. 关于 sys.argv 的详解,看完这篇你要是还不明白 我倒立吃翔 稀得
  9. 实现一个javascript手势库 -- base-gesture.js
  10. Git学习:来自fengyu的b站听课笔记