首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flutter -当键盘隐藏时TextFormField变为空白

Flutter是一种跨平台的移动应用开发框架,由Google开发和维护。它使用Dart语言编写,并且可以同时在iOS和Android平台上构建高性能、美观的应用程序。

在Flutter中,TextFormField是一个用于接收用户输入的文本字段的小部件。当键盘隐藏时,TextFormField变为空白可能是由于以下几个原因:

  1. 键盘焦点丢失:当键盘隐藏时,如果TextFormField失去了焦点,它将不会显示任何文本。可以通过为TextFormField设置焦点节点来解决此问题。例如,可以使用FocusNode类创建一个焦点节点,并将其与TextFormField关联起来,以确保在键盘隐藏时保持焦点。
  2. 输入控制器问题:TextFormField使用一个输入控制器来管理用户输入的文本。如果输入控制器的值为空,TextFormField将显示为空白。可以通过确保输入控制器的值不为空来解决此问题。例如,可以在TextFormField的输入控制器中设置一个初始值,或者在用户提交表单之前验证输入控制器的值。
  3. 键盘隐藏事件处理问题:当键盘隐藏时,可以通过监听键盘隐藏事件来执行相应的操作。例如,可以使用键盘监听器来检测键盘隐藏事件,并在事件发生时更新TextFormField的状态或执行其他操作。

总结起来,当键盘隐藏时,TextFormField变为空白可能是由于焦点丢失、输入控制器问题或键盘隐藏事件处理问题。通过设置焦点节点、确保输入控制器的值不为空以及监听键盘隐藏事件,可以解决这个问题。

腾讯云提供了一系列与移动应用开发相关的产品和服务,例如云服务器、云数据库、云存储等。您可以根据具体需求选择适合的产品。更多关于腾讯云移动应用开发相关产品的信息,请访问腾讯云官方网站:https://cloud.tencent.com/product/mobile

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter 实战】全局点击空白隐藏键盘

老孟导读:为什么要实现点击空白隐藏键盘?因为这是 iOS 平台的默认行为,Android 平台由于其弹出的键盘右上角默认带有关闭键盘的按钮,所以点击空白处不会隐藏键盘。...对于单个页面来说,通过为 TextField 添加 focusNode,点击空白使 TextField 失去焦点,实现如下: class DismissKeyboardDemo extends StatelessWidget...App 中有多个页面多个 TextField ,此方式会增加大量重复的代码,因此全局添加点击空白处的监听: class MyApp extends StatelessWidget { @override...child: child, ), ), home: DismissKeyboardDemo(), ); } } 也可以使用如下方式隐藏键盘...: AppBar(), body: Center( child: TextField(), ), ); } } 效果和上面是一样的,同样可以实现点击空白隐藏键盘

3.9K10

【第21期】Flutter 文本框初始化时显示默认值

第一次创建,controller会包含初始值, // 当用户修改文本框内容,会修改controller的值。...但是现在有一种情况: **问题1: **页面文本框中的初始值是动态的,从后台获取到的时候,应该怎么办呢? 这种情况下,说明创建TextEditingController,并不知道文本内容。...这种情况我根本没遇到过,但是我觉得Flutter肯定有解决方法。...所以我去找了一下Flutter的文档,总算是没有白找,找到了一个(https://api.flutter.dev/flutter/material/TextFormField-class.html)[组件...意思就是说,不指定controller,initialValue 就可以自动生成controller的初始值。 既然有解决方案,那么就是修改一下代码即可。

4.4K20

Flutter 入门指北之输入处理(登录界面实战)

包括提醒字样,hint 等等 TextInputType keyboardType, // 输入文本类型,例如 数字,email 等等 this.textInputAction, // 键盘确认按钮的事件类型...this.textDirection, // 文字方向 this.autofocus = false, // 是否自动获取焦点 this.obscureText = false, // 文字是否隐藏...,通过该方法进行修改,最后的效果图如下,输入框文字发生变化的时候,监听的 Text 内容会随之改变,获取内容的 Text 点击按钮了才发生变化 ?...导入第三方插件 其实 Flutter 中缺少很多功能,需要通过导入第三方插件来实现功能,插件就是 Flutter 和原生交互的桥梁,也就是说,要写 Flutter 的插件,需要写 Android 和 iOS...AssetImage('images/login_bg.png'), fit: BoxFit.cover)), // 先忽略...下面会讲,主要是解决软键盘弹出的时候

1.9K50

Flutter》-- 4.Flutter组件基础

创建一个StatefulWidget组件,同时也会创建一个State对象,StatefulWidget就是通过与State对象进行关联来管理组件状态树的。...4)flexibleSpace:位于标题下面的空白空间。 5)bottom:位于导航栏底部的自定义组件。 6)elevation:控制下方阴影栏的坐标。...didUpdateWidget():组件的配置发生变化或执行热重载,系统会回调该函数更新视图。...dispose():状态组件需要被永久地从视图树中移除,调用dispose()。调用dispose()后,组件会被销毁,在调用dispose()之前可以执行资源释放、移除监听、清理环境等工作。...obscureText:是否隐藏正在编辑的文本内容。 maxLines:输入框文本的最大行数,默认为1. maxLength:输入框中允许的最大字符数。

12.4K30

Flutter Form表单控件超全总结

[1240] 注意:无特殊说明,Flutter版本及Dart版本如下:Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 Form、FormField、TextFormField...TextFormField TextFormField继承自FormField,是一个输入框表单,因此TextFormField中有很多关于TextField的属性,TextFormField的基本用法...null:'账号最少6个字符'; }, ) TextFormField效果如下: [1240] onSaved是一个可选参数,Form调用FormState.save才会回调此方法。...autovalidate参数为是否自动验证,设置为true,TextField发生变化就会调用validator,设置false,FormFieldState.validate调用时才会回调validator...onChanged:子表单控件发生变化时回调。 欢迎加入Flutter的微信交流群(mqd_zzy),让我们一起学习,一起进步,开始我们的故事,生活不止眼前的苟且,还有诗和《远方》。

3.1K00

Flutter | 常用组件

300, fit: BoxFit.cover, color: Colors.red, colorBlendMode: BlendMode.difference, ) repeat:图片本身大小小于显示空间... Switch 或者 CheckBox 被点击,会触发 onChanged 回调,我们可以回调中改变逻辑 class SwitchAndCheckboxTest extends StatefulWidget...不同的是后者的回调是 ValueChanged ,前者不接受参数 inputFormatters:用于指定输入格式,输入内容改变,会根据指定格式来校验 enable:若为...TextField( obscureText: true, ) 隐藏后输入的内容将不可见,变成密码类型了 键盘类型 TextField( keyboardType: TextInputType.number...}) 复制代码 为了方便使用,Flutter 提供了一个 TextFormField 组件,他继承自 FormField 类,也是一个包装类,所以除了 FormField 之后,它还包括 TextField

11.3K30

Flutter 从 TextField 安全泄漏问题深入探索文本输入流程

之后我们通过 TextField 的 controller 清空输入文本,销毁当前页面,跳转到空白页面下后,同时在 Flutter devTool 上主动点击 GC 清理数据,最后再回到终端执行 find...在 Android 上,输入法要和某些 View 进行交互,系统会通过View 的 onCreateInputConnection 方法返回一个 InputConnection 实例给输入法用于交互通信...,例如通过它显示/隐藏键盘,或者配置一些键盘特性; ListenableEditingState:用于保存当前编辑状态,如文本内容、选择范围等等,因为 InputConnection 会需要一个 Editable...; 简单介绍完这些对象的作用,我们回到文本输入的流程上,当用键盘输入完内容,文本输入内容会进入到 InputConnectionAdaptor 的 endBatchEdit ,然后如下图所示: 键盘输入的内容会保存在...,会直接通过 TextInputChannel 将 code 发送到 Dart ; sendKeyEvent : 某些特殊按键输入时会被回调,例如点击退格键,但是这个取决于输入的不同,例如小米安全键盘输入法的退格键就不会触发

1.4K30

Flutter 上的一个 Bug 带你了解键盘与路由的另类知识点

image 如上图所示,可以看到在键盘 B 页面打开后,退回上一个页面 A 键盘已经收起,但是原先键盘所在的区域在 A 页面变成了空白,而 A 页面内容也被 resize 成了键盘弹出后的大小。...在 Flutter 中 Scaffold 默认情况下 resizeToAvoidBottomInset 为 true, resizeToAvoidBottomInset 为 true ,Scaffold...官方的解释是: “可以被系统显示的区域,通常是和设备的键盘等相关,键盘弹出 viewInsets.bottom 对应的就是键盘的顶部。”...其实 Window 的值来源于 Flutter Engine,在键盘弹出 Flutter Engine 会通过 _updateWindowMetrics 方法更新 Window 数据,并执行 window.onMetricsChanged..._onMetricsChangedZone); } 所以可以看到,键盘弹出和收起,Engine 会更新 Window 的数据,Window 触发界面绘制更新,同时更新 MaterialApp 中的

1.2K80

Flutter实战】文本组件及五大案例

icon显示在输入框的前面,用法如下: TextField( decoration: InputDecoration( icon: Icon(Icons.person), ), ) 输入框是空而且没有焦点...,labelText显示在输入框上边,获取焦点或者不为空labelText往上移动一点,labelStyle参数表示文本样式,具体参考TextStyle, 用法如下: TextField( decoration...用户名长度为6-10个字母', helperStyle: TextStyle(color: Colors.blue), helperMaxLines: 1 ), ) hintText是输入框为空的提示...keyboardType参数控制软键盘的类型,说明如下: text:通用键盘。 multiline:TextField为多行时(maxLines设置大于1),右下角的为“换行” 按键。...onChanged是内容发生变化时回调,onSubmitted是点击回车或者点击软键盘上的完成回调,onTap点击输入框回调,用法如下: TextField( onChanged: (value

7.2K10

详解Android中获取软键盘状态和软键盘高度

,执行回退操作,这时就需要判断,如果软键盘刚刚由显示变为隐藏状态,就不执行回退操作。...注册布局变化监听 在Android中键盘隐藏变为显示,或由显示变为隐藏,会触发当前布局中View的全局布局变化。通过监听全局布局的变化就可以得知软键盘的状态。...键盘隐藏变为显示,或由显示变为隐藏,都会调用当前布局中所有存在的View中的ViewTreeObserver对象的dispatchOnGlobalLayout()方法,此方法中会遍历所有已注册的...键盘显示,窗口的可见区域大小会被压缩,键盘隐藏,窗口的可见区域大小会还原。...在主Activity中,键盘状态发生改变通知监听者。 完整示例代码 完整的示例代码如下。

2.7K20

Flutter』警告修复 & 常用组件 TextField

Flutter』常用组件 TextField1.前言经过上一篇文章的介绍,给大家讲述了 Flutter 中的有无状态组件,以及有状态组件的使用方法,本文将继续围绕着 Flutter 中常用的组件来讲述一下...本次要讲述的组件有:TextField2.TextField2.1.介绍Flutter 的 TextField 组件是一个用于文本输入的基础组件,它提供了用户输入文本的界面。...keyboardType:用于指定键盘类型,例如数字键盘、邮箱键盘等。obscureText:一个布尔值,用于控制是否隐藏输入内容,常用于密码输入。onChanged:文本发生变化时触发的回调函数。...onSubmitted:用户在键盘上按下完成按钮触发的回调函数。enabled:一个布尔值,用于控制 TextField 是否启用。...3.参考资料https://api.flutter.dev/flutter/material/TextField-class.htmlEnd如果您对本文有任何疑问或想法,请在评论区留言,我将很乐意与您交流

27411
领券