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 相关文章推荐
jquery 页面滚动到底部自动加载插件集合
Jan 31 Javascript
scrollWidth,clientWidth,offsetWidth的区别
Jan 13 Javascript
js实现鼠标点击文本框自动选中内容的方法
Aug 20 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
May 10 Javascript
使用jQuery处理AJAX请求的基础学习教程
May 10 Javascript
分享一个插件实现水珠自动下落效果
Jun 01 Javascript
基于vue的下拉刷新指令和滚动刷新指令
Dec 23 Javascript
深入浅析vue组件间事件传递
Dec 29 Javascript
SVG实现时钟效果
Jul 17 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
Jun 15 Javascript
微信公众号平台接口开发 菜单管理的实现
Aug 14 Javascript
react实现同页面三级跳转路由布局
Sep 26 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
一个改进的UBB类
2006/10/09 PHP
php 404错误页面实现代码
2009/06/22 PHP
php设计模式 Mediator (中介者模式)
2011/06/26 PHP
php通过COM类调用组件的实现代码
2012/01/11 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
可编辑下拉框的2种实现方式
2014/06/13 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
react中使用swiper的具体方法
2018/05/15 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
微信小程序实现图片上传放大预览删除代码
2020/06/28 Javascript
layui结合form,table的全选、反选v1.0示例讲解
2018/08/15 Javascript
Vue基于localStorage存储信息代码实例
2020/11/16 Javascript
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
TensorFlow的权值更新方法
2018/06/14 Python
python调用百度语音识别api
2018/08/30 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
python Autopep8实现按PEP8风格自动排版Python代码
2021/03/02 Python
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
Java面试笔试题大全
2016/11/23 面试题
城管综合整治方案
2014/05/01 职场文书
数控专业毕业生求职信
2014/06/12 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
会计求职自荐信范文
2015/03/04 职场文书