欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

react native 解决键盘弹起遮挡输入框问题

程序员文章站 2022-05-30 11:54:16
...

问题:使用Textinput组件时,ios模拟器软键盘弹出会遮挡住输入框.

如何调出软键盘:
react native 解决键盘弹起遮挡输入框问题
解决思路:(其他情况类似)
1、Textinput在ScrollView中
当弹出软键盘时,计算软键盘的高度,state设置ScrollView的paddingBottom值加上软键盘的高度
2、Textinput固定在屏幕底部
当弹出软键盘时,计算软键盘的高度,state设置Textinput定位的bottom值加上软键盘的高度

代码:

import Keyboard from 'react-native'
componentDidMount() {
    // keyboardWillShow:软键盘将要显示
    // keyboardDidShow:软键盘显示完毕
    // keyboardWillHide:软键盘将要收起
    // keyboardDidHide:软键盘收起完毕
    // keyboardWillChangeFrame:软件盘的 frame 将要改变
    // keyboardDidChangeFrame:软件盘的 frame 改变完毕
    Keyboard.addListener('keyboardDidShow', (event) => {
    // console.log('keyboard:', event)
       this.setState({
         keyposition: isIphoneX() ? event.duration + 80 : event.duration,
       })
    })
    Keyboard.addListener('keyboardDidHide', (event) => {
        this.setState({
            keyposition: 0
        })
    })
}

打印event:
react native 解决键盘弹起遮挡输入框问题

iphoneX 需在软键盘高度的基础上加78

相关标签: react