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


Posted in Javascript onJuly 11, 2017

在开发中经常遇到需要输入的地方,所以就学习了一下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();

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

Javascript 相关文章推荐
javascript字符串拼接的效率问题
Dec 25 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
Jun 05 Javascript
用Javascript获取页面元素的具体位置
Dec 09 Javascript
textarea 控制输入字符字节数(示例代码)
Dec 27 Javascript
js的正则test,match,exec详细解析
Jan 29 Javascript
jQuery实现的登录浮动框效果代码
Sep 26 Javascript
分享jQuery封装好的一些常用操作
Jul 28 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
Dec 17 Javascript
Vue 实用分页paging实例代码
Apr 12 Javascript
vue2.0移除或更改的一些东西(移除index key)
Aug 28 Javascript
jQuery实现消息弹出框效果
Dec 10 jQuery
解决vue项目 build之后资源文件找不到的问题
Sep 12 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
Jul 11 #Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
Jul 11 #Javascript
javascript 玩转Date对象(实例讲解)
Jul 11 #Javascript
使用jQuery实现动态添加小广告
Jul 11 #jQuery
Vue中父组件向子组件通信的方法
Jul 11 #Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
Jul 11 #Javascript
网页中的图片查看器viewjs使用方法
Jul 11 #Javascript
You might like
PHP中动态显示签名和ip原理
2007/03/28 PHP
php smarty的预保留变量总结
2008/12/04 PHP
php 输出双引号&quot;与单引号'的方法
2010/05/09 PHP
PHP学习笔记之一
2011/01/17 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
JS 如果改变span标签的是否隐藏属性
2011/10/06 Javascript
js子页面获取父页面数据示例
2014/05/15 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
2015/11/26 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
JavaScript中splice与slice的区别
2017/05/09 Javascript
JavaScript代码执行的先后顺序问题
2017/10/29 Javascript
JS实现的汉字与Unicode码相互转化功能分析
2018/05/25 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
2018/07/04 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
创建pycharm的自定义python模板方法
2018/05/23 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
python 同时读取多个文件的例子
2019/07/16 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
2014第二批党员干部对照“四风”找差距检查材料思想汇报
2014/09/18 职场文书
2014年应急管理工作总结
2014/11/26 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
交通事故代理词范文
2015/05/23 职场文书
陈斌强事迹观后感
2015/06/17 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
golang 生成对应的数据表struct定义操作
2021/04/28 Golang
php修改word的实例方法
2021/11/17 PHP
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis