Flutter TextField输入文字时,若页面刷新,会导致光标位置发生变化。
问题描述
前提:
使用了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输入文字时,若页面刷新,会导致光标位置发生变化。相关推荐
- 输入文字时自动带空格解决办法
输入文字时自动带空格解决办法: 把输入法中的全角改为半角,即: 把 改为
- 为什么CAD输入文字时文字特别大但输入后就消失了?
CAD绘图过程中,在CAD输入文字时输入框中的文字很大但是输入之后文字就消失了,这是为什么呢?这是由于CAD输入文字太小,CAD为了方便大家编辑文字,当文字太小看不清时,便会将文字放大.那么如何解决这 ...
- 网站输入正确账号密码页面刷新一下_淘宝开店卖家如何正确发布宝贝?先学会这3个技巧,不要再迷茫了...
>>阅读前,请点击右上角[关注]口袋电商课,让你少走一年弯路! 当自己店铺的产品较少,发布宝贝显得很简单.但当自己的店铺单品很多时,这项工作就显得繁琐,光是产品的主图和详情页就够让人头大, ...
- 解决“word输入文字时光标后的字会自动删除”问题
word中输入字时后面的老是被删掉,这是word使用了改写的功能,以word2003为例,去掉该功能的方法如下: 方法一: 在word界面底下的状态栏里,双击"改写"的按钮,让它变 ...
- 网站输入正确账号密码页面刷新一下_Folx的密码管理保存网站登陆信息
Folx的密码管理保存网站登陆信息 大家下载某个文件时,需要登录文件所在的网站才能进行下载,否则哪怕有下载链接也无权限进行文件下载,那Folx遇到这种情况是否就无法使用了呢?Folx的密码管理也能保存 ...
- 调整窗口大小时进行页面刷新(设定定时器)
1 var timeout = null;//onresize触发次数过多,设置定时器 2 window.onresize = function () { 3 clearTimeout(timeout ...
- word2019输入文字时很卡解决方法。
最近新安装了word2019,网上很多办法都试过了,卸载重新安装了很多次也不起作用.最终才发现就需要简单的这一步操作: 第一步,打开word2019,找到文件,点击一下. 第二步,找到选项,点击选项 ...
- Window系统触摸板防误撞 - 输入文字时再也不用担心光标找不到了
这里写自定义目录标题 Window系统触摸板防误撞 小小软件解决 参考 Window系统触摸板防误撞 大家好!随着电脑笔记本技术与硬件的发展,当前触摸板变的越来越好用,对于日常办公来说,基本完全替代鼠 ...
- 输入文字时自动删除后面文字的解决办法
出现问题的原因:不小心触碰到了Insert键 解决办法: 再按一下Insert键即可
- Flutter TextField 边框样式以及提示文本 、Flutter输入文本TextField
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. github? 你可能需要 百度同步 CSDN 网易云课堂教程 掘金 知乎 Flutter系列文章 头条同步 本文章首发于微信公众号( ...
最新文章
- 平衡二叉树-FHQ Treap(无旋平衡树)c/c++代码实现
- rowspan和colspan用法详解
- c++ new一个结构体_「C/C++」构造类型及应用:数组、结构体、共用体、枚举类型...
- 十、封装python3读写ini文件类
- 竞争神经网络与SOM神经网络及其在矿井突水水源判别的应用
- 仿各大app的商品详情页购买信息弹幕
- EMI (电磁干扰)
- 洛谷3823 [NOI2017] 蚯蚓排队 【哈希】
- Springboot 集成帆软报表(finereport10.0)详细步骤
- 重磅!超详细的 JS 数组方法整理出来了
- 阿里巴巴瓴羊CEO朋新宇走进清涧县,点亮“橙星计划”第一颗星
- 解决zui-upload(ZUI: 文件上传 - v1.8.1)移动端上传组件的bug
- 网站漏洞修复 被上传webshell漏洞修补
- 智能自动感应手消毒器方案开发
- 1-开发环境--android文件系统的结构
- 关于课题的一点思考(基于多生理信号的情绪识别)
- Empty suite
- Google File System中文版
- 实验五——数据库设计实验
- AcWing 715. 余数
热门文章
- 计算机网络路由器配置IP地址,电脑查看路由器设置网址(登录IP地址)的方法
- 光猫的ip地址段和路由器ip地址段互换
- svn访问路径提示Unable to connect to a repository at url
- mc服务器信息监控,Splunk搭建MC监控控制台
- 【Unity3D开发小游戏】《文字冒险游戏》Unity开发教程
- pidgin qq_Pidgin入门:Skype的开源替代品
- c语言怎么从键盘输入坐标,C语言从键盘输入数据
- 关于 sys.argv 的详解,看完这篇你要是还不明白 我倒立吃翔 稀得
- 实现一个javascript手势库 -- base-gesture.js
- Git学习:来自fengyu的b站听课笔记