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创建一个选择文件的对话框代码
Jun 16 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
Jul 12 Javascript
在子窗口中关闭父窗口的一句代码
Oct 21 Javascript
jQuery实现可用于博客的动态滑动菜单
Mar 09 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
Dec 02 Javascript
BootStrap的JS插件之轮播效果案例详解
May 16 Javascript
jquery easyui如何实现格式化列
Jul 30 jQuery
webpack4+react多页面架构的实现
Oct 25 Javascript
详解 微信小程序开发框架(MINA)
May 17 Javascript
详解vue-property-decorator使用手册
Jul 29 Javascript
生成无限制的微信小程序码的示例代码
Sep 20 Javascript
javascript浅层克隆、深度克隆对比及实例解析
Feb 09 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编程开发“虚拟域名”系统
2006/10/09 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
jquery组件使用中遇到的问题整理及解决
2014/02/21 Javascript
js 验证身份证信息有效性
2014/03/28 Javascript
AngularJS语法详解
2015/01/23 Javascript
JavaScript实现Flash炫光波动特效
2015/05/14 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
Python及PyCharm下载与安装教程
2017/11/18 Python
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
Python 中的 import 机制之实现远程导入模块
2019/10/29 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
医学专业职业生涯规划范文
2014/02/05 职场文书
应聘文员自荐信范文
2014/03/11 职场文书
学生会部长竞聘书
2014/03/31 职场文书
高中生家长寄语大全
2014/04/03 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
企业2014年度工作总结
2014/12/10 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
化妆品促销活动总结
2015/05/07 职场文书
环保建议书范文
2015/09/14 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书