ios键盘覆盖位于屏幕底部的输入。怎么能解决这个问题?
这是代码。
<Content style={styles.content}>
<Form>
<Item style={{borderBottomColor:'#42e8f4'}}>
<Icon active name='mail' style={{color: '#42e8f4'}} />
<Input placeholder='Email'placeholderTextColor= '#42e8f4' style={{color:'#0dc49d'}}/>
</Item>
<Item style={{ borderBottomColor:'#42e8f4'}}>
<Icon active name='lock' style={{color: '#42e8f4'}} />
<Input secureTextEntry={true} placeholder='Password'placeholderTextColor= '#42e8f4' style={{color:'#42e8f4'}}/>
</Item>
</Form>
<ListItem style={{borderBottomWidth:0,borderTopWidth:0,borderBottomColor:'#42e8f4'}}>
<Button transparent onPress={() => this.props.navigation.navigate("Signup")}>
<Text style={{color:'#42e8f4'}}>Create Account</Text>
</Button>
<Button transparent onPress={() => this.props.navigation.navigate("Forgetpass")}>
<Text style={{color:'#42e8f4'}}>Forget Password</Text>
</Button>
</ListItem>
<Button full
style={{backgroundColor:'#42e8f4'}}
onPress={() => this.props.navigation.navigate("Welcome")}>
<Text style={{color: '#FFF'}}>Sign In</Text>
</Button>
</Content>
const styles = {
content:{
position:'absolute',
bottom:10,
left:0,
right:0
},
}
我正在使用Native-Base。如何解决这个问题?
答案 0 :(得分:2)
查看React Native Keyboard Avoiding View的文档。
它是解决需要的常见问题的一个组件 移开虚拟键盘的方式。它可以自动 根据位置调整其位置或底部填充 键盘。
How to make your React Native app respond gracefully when the keyboard pops up文章
中的示例 return (
<KeyboardAvoidingView
style={styles.container}
behavior="padding"
>
<Image source={logo} style={styles.logo} />
<TextInput
placeholder="Email"
style={styles.input}
/>
<TextInput
placeholder="Username"
style={styles.input}
/>
<TextInput
placeholder="Password"
style={styles.input}
/>
<TextInput
placeholder="Confirm Password"
style={styles.input}
/>
<View style={{ height: 60 }} />
</KeyboardAvoidingView>
);
答案 1 :(得分:0)
您可以使用此库react-native-keyboard-aware-scroll-view只需将其作为组件的容器
答案 2 :(得分:0)
这是我的解决方案,适用于 ios 和 android:
return (
<ScrollView contentContainerStyle={{ flexGrow: 1 }}>
<KeyboardAvoidingView
behavior={Platform.OS === "ios" ? "padding" : ""}
style={styles.container}>
........
// Your input fields
........
</KeyboardAvoidingView>
</ScrollView>
)
const styles = StyleSheet.create({
container: {
flex: 1
},
});