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 相关文章推荐
Js+XML 操作
Sep 20 Javascript
javascript中String对象的slice()方法分析
Dec 20 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
Mar 23 Javascript
js实现点击向下展开的下拉菜单效果代码
Sep 01 Javascript
JavaScript中获取Radio被选中的值
Nov 11 Javascript
jQuery给元素添加样式的方法详解
Dec 30 Javascript
Bootstrap对话框使用实例讲解
Sep 24 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
Sep 19 Javascript
修改node.js默认的npm安装目录实例
May 15 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
Dec 10 jQuery
ES6中定义类和对象的方法示例
Jul 31 Javascript
vue中nextTick用法实例
Sep 11 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
单位速度在实战中的运用
2020/03/04 星际争霸
php面象对象数据库操作类实例
2014/12/02 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
javascript实现点击星星小游戏
2019/12/24 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
itchat接口使用示例
2017/10/23 Python
python format 格式化输出方法
2018/07/16 Python
python跳出双层for循环的解决方法
2019/06/24 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
为什么称python为胶水语言
2020/06/16 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
同步和异步有何异同,在什么情况下分别使用他们?
2012/12/28 面试题
化工专业大学生职业生涯规划书
2014/01/14 职场文书
公司中层干部的自我评价分享
2014/03/01 职场文书
企业职业病防治方案
2014/05/29 职场文书
美术学专业求职信
2014/07/23 职场文书
三八妇女节标语
2014/10/09 职场文书
房屋买卖协议样本
2014/11/16 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python