2

反応ネイティブで KeyboardAvoidingView を使用すると問題が発生します。フォローは私のコードです:

<View style={styles.container}>
    <View style = {styles.pagetitle_part}>
        <Text style = {{fontSize: 25, color: '#ffffff'}}> Register User </Text>
        <TouchableOpacity style = {{position: 'absolute', top: 30, left: 20}} onPress = {() => this.props.navigation.navigate('SignIn')}>
            <Image style = {{width: 15, height: 15}} resizeMode = 'contain' source = {require('../assets/images/left_arrow.png')}/>
        </TouchableOpacity>
    </View>
    <View style = {styles.main_part}>
        <ScrollView style = {{width: deviceWidth}} showsVerticalScrollIndicator = {false}>
            <KeyboardAvoidingView behavior = 'padding'>
                <View style = {styles.component_input}>
                    <View style = {styles.title_view}>
                        <Text style = {styles.title_text}> Fist Name </Text>
                    </View>
                    <View style = {styles.input_view}>
                        <TextInput underlineColorAndroid = 'transparent' style = {styles.input_text} onChangeText = {this.handleFirstName}>{this.state.first_name}</TextInput>
                    </View>
                </View>
                <View style = {styles.component_input}>
                    <View style = {styles.title_view}>
                        <Text style = {styles.title_text}> Last Name </Text>
                    </View>
                    <View style = {styles.input_view}>
                        <TextInput underlineColorAndroid = 'transparent' style = {styles.input_text} onChangeText = {this.handleLastName}>{this.state.last_name}</TextInput>
                    </View>
                </View>
                ... ... ...
            </KeyboardAvoidingView>
        </ScrollView>
    </View>
</View>

Android では、TextInput をタップすると、上のコンポーネントが押し上げられ、下のコンポーネントが画面に表示されます。しかし、iOS では問題ありません。

以下は、Android で TextInput をタップする前のスクリーンショットです。

TextInput をタップする前のスクリーンショット

以下は、TextInput をタップした後のスクリーンショットです。

TextInput をタップした後のスクリーンショット

前に言ったように、iOS ではすべて問題ありません。Androidでこの問題を解決するにはどうすればよいですか? iOS と Android ではなぜ違うのですか? あなたの進歩を聞いてとてもうれしいです。ありがとう。

4

1 に答える 1