ReactNative之键盘Keyboard的弹出与消失示例

发布时间 - 2026-01-11 02:16:48    点击率:

在开发中经常遇到需要输入的地方,所以就学习了一下ReactNative键盘Keyboard的弹出与消失的方法,留个笔记。

今天我们来说下RN对键盘事件的支持。

在React-native 的Component组件中有个Keyboard.

github地址如下:https://github.com/facebook/react-native/tree/770091f3c13f7c1bd77c50f979d89a774001fbf0/Libraries/Components/Keyboard

我们先来看下官方提供的例子,监听键盘的弹出与消失。Demo如下:

import React, { Component } from 'react'; 
import { Keyboard, TextInput } from 'react-native'; 
 
class Example extends Component { 
 componentWillMount () { 
  this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow); 
  this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide); 
 } 
 
 componentWillUnmount () { 
  this.keyboardDidShowListener.remove(); 
  this.keyboardDidHideListener.remove(); 
 } 
 
 _keyboardDidShow () { 
  alert('Keyboard Shown'); 
 } 
 
 _keyboardDidHide () { 
  alert('Keyboard Hidden'); 
 } 
 
 render() { 
  return ( 
   <TextInput 
    onSubmitEditing={Keyboard.dismiss} 
   /> 
  ); 
 } 
} 

Keyboard支持的监听事件如下:

@param {string} nativeEvent The `nativeEvent` is the string that identifies the event you're listening for. This can be any of the following: 
- `keyboardWillShow` 
- `keyboardDidShow` 
- `keyboardWillHide` 
- `keyboardDidHide` 
- `keyboardWillChangeFrame` 
- `keyboardDidChangeFrame` 

使用的时候需要测试下Android和iOS下监听的事件是否都ok。

踩坑如下:

android 对keyboardWillShow 监听不到。

同样,我们在源码里可以找到使键盘消失的函数

/** 
 * Dismisses the active keyboard and removes focus. 
 */ 
dismiss () { 
 dismissKeyboard(); 
} 

我们如果需要使用时,可以如下:

const dismissKeyboard = require('dismissKeyboard'); 
dismissKeyboard(); 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# react  # native弹出键盘  # native  # 弹出  # ReactJs实现树形结构的数据显示的组件的示例  # 详解React中传入组件的props改变时更新组件的几种实现方法  # VSCode配置react开发环境的步骤  # react-redux中connect的装饰器用法@connect详解  # ReactNative 之FlatList使用及踩坑封装总结  # react-router browserHistory刷新页面404问题解决方法  # 详解React Native开源时间日期选择器组件(react-native-datetime)  # React Fiber结构的创建步骤  # 有个  # 可以找到  # 大家多多  # 留个  # Demo  # TextInput  # brush  # import  # class  # pre  # js  # extends  # _keyboardDidShow  # keyboardDidHideListener  # keyboardDidHide  # keyboardDidShow  # componentWillMount  # keyboardDidShowListener  # addListener 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 使用C语言编写圣诞表白程序  如何快速选择适合个人网站的云服务器配置?  Laravel如何配置任务调度?(Cron Job示例)  Laravel怎么为数据库表字段添加索引以优化查询  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  网站制作报价单模板图片,小松挖机官方网站报价?  C语言设计一个闪闪的圣诞树  EditPlus中的正则表达式实战(5)  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  昵图网官方站入口 昵图网素材图库官网入口  EditPlus 正则表达式 实战(3)  Laravel API资源类怎么用_Laravel API Resource数据转换  香港服务器租用费用高吗?如何避免常见误区?  Laravel如何实现模型的全局作用域?(Global Scope示例)  如何快速配置高效服务器建站软件?  Laravel如何配置和使用缓存?(Redis代码示例)  网站制作软件免费下载安装,有哪些免费下载的软件网站?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  JavaScript如何实现继承_有哪些常用方法  高防服务器如何保障网站安全无虞?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  Laravel如何记录自定义日志?(Log频道配置)  Android okhttputils现在进度显示实例代码  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  Laravel如何集成Inertia.js与Vue/React?(安装配置)  重庆市网站制作公司,重庆招聘网站哪个好?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  如何自定义建站之星网站的导航菜单样式?  如何用腾讯建站主机快速创建免费网站?  微信小程序 require机制详解及实例代码  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  如何安全更换建站之星模板并保留数据?  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  如何制作一个表白网站视频,关于勇敢表白的小标题?  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  HTML 中如何正确使用模板变量为元素的 name 属性赋值  如何快速建站并高效导出源代码?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  如何用AWS免费套餐快速搭建高效网站?  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  如何快速使用云服务器搭建个人网站?  如何将凡科建站内容保存为本地文件?  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程