1、示例正确案例:

export default class  ConnectServicePage  extends Component{

    state = {
        behavior: 'padding',
    };
    render() {
        return (
            <View style={styles.container}>
                <KeyboardAvoidingView behavior="padding" style={styles.container}>
                    <Image  source={require('../../assets/serve/Illustration_serve.png')} style={{marginTop: px2dp(100)}}/>
                    <TextInput
                        underlineColorAndroid={'#ffffff'}
                        placeholder="这里是一个简单的输入框"
                        style={styles.textInput} />
                </KeyboardAvoidingView>
            </View>
        );
    }

};

const styles = StyleSheet.create({
    container: {
        flex: 1,
        backgroundColor:'white',
        justifyContent: 'center',
        paddingHorizontal: 20,
        paddingTop: 20,
    },
    textInput: {
        borderRadius: 5,
        borderWidth: 1,
        height: 140,
        paddingHorizontal: 10,
    },
});

2、KeyboardAwareScrollView或者KeyboardAvoidingView的子控件顶部为一张大图片,图片下部为输入框,这时会出现输入框被遮挡的问题。这是有子控件的justifyContent不是 'center'导致,例如是:'space-between',就会出现问题。

当KeyboardAwareScrollView控件时指定指定子控件的属性,例如使用了该控件的contentContainerStyle的属性。这时需要注意,该属性的styles中的justifyContent也不能使用'space-between'。只能下面这样:

keyboardAwareScrollViewStyle:{
        alignItems: 'center',
        justifyContent: 'center',
        flex: 1,
    }
<KeyboardAwareScrollView style={
      contentContainerStyle={styles.keyboardAwareScrollViewStyle}
      behavior="padding">

 

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐