React Native 解决键盘挡住输入框问题 和 React Native WebView 解决键盘挡住输入框问题

本文提供了解决ReactNative及ReactNativeWebView中键盘遮挡输入框的问题方案。针对ReactNativeWebView,通过监听屏幕尺寸变化自动调整输入框位置;对于ReactNative组件,利用键盘监听事件动态调整WebView高度,确保输入框始终可见。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载请注明预见才能遇见的博客:http://my.youkuaiyun.com/

原文地址:https://blog.youkuaiyun.com/pcaxb/article/details/84939301

React Native 解决键盘挡住输入框问题  和 React Native WebView 解决键盘挡住输入框问题

 

1.React Native WebView 解决键盘挡住输入框问题(不需要2)

       if(/Android [4-6]/.test(navigator.appVersion)) {
            window.addEventListener("resize", function() {
                if(document.activeElement.tagName=="INPUT" ||         
                         document.activeElement.tagName=="TEXTAREA") {
                    window.setTimeout(function() {
                        document.activeElement.scrollIntoViewIfNeeded();
                    },0);
                }
            })
        }

2.React Native 解决键盘挡住输入框问题


import {Keyboard,Dimensions} from 'react-native';

//屏幕的高度
let ScreenHeight = Dimensions.get('window').height;

export default class WebViewPageAndroid extends Component {

    constructor(props) {
        super(props);
        this.state = {
            webViewHeight:ScreenHeight,
        }
    }

    componentDidMount(){
        this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow.bind(this)); 
        this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide.bind(this));
    }

    componentWillUnmount() {
        this.keyboardDidShowListener.remove(); 
        this.keyboardDidHideListener.remove();
    }

    _keyboardDidShow (e) {
        this.setState({webViewHeight:ScreenHeight - e.endCoordinates.height})
    } 
        
    _keyboardDidHide (e) {
        this.setState({webViewHeight:ScreenHeight})
    }

    render() {
        return (
            <View style={{
                	height:this.state.webViewHeight
				}}>

                <WebView
                style={{
                    height:'100%',
                }}
                />

            </View>
        );
    }
}

说明:React Native WebView的只需要1就能解决,React Native 的组件就用2。

 

React Native 解决键盘挡住输入框问题  和 React Native WebView 解决键盘挡住输入框问题

博客地址:https://blog.youkuaiyun.com/pcaxb/article/details/84939301

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值