React native 键盘在react native expo中向上移动视图
我是新来的,我需要帮助。当键盘出现时,整个视图被向上推。我不希望发生这种情况。我看到了其他答案,但没有一个对我有效。我不希望在键盘出现时视图被向上推,并希望视图保持在原来的位置。我正在使用expo,并在下面的图片中给出了代码React native 键盘在react native expo中向上移动视图,react-native,React Native,我是新来的,我需要帮助。当键盘出现时,整个视图被向上推。我不希望发生这种情况。我看到了其他答案,但没有一个对我有效。我不希望在键盘出现时视图被向上推,并希望视图保持在原来的位置。我正在使用expo,并在下面的图片中给出了代码 从“世博会状态栏”导入{StatusBar}; 从“React”导入React; 从“react native”导入{Image,StyleSheet,View,TextInput,Text,TouchableOpacity,ScrollView,KeyboardAv
从“世博会状态栏”导入{StatusBar};
从“React”导入React;
从“react native”导入{Image,StyleSheet,View,TextInput,Text,TouchableOpacity,ScrollView,KeyboardAvoidingView};
导出默认函数LoginScreen({navigation}){
返回(
登录
console.log('g')}
风格={{
位置:'相对',
前三名:“23%”,
fontWeight:'粗体',
}} >
还是使用社交媒体帐户登录?
navigation.navigate('Create')
}
风格={{
宽度:“100%”,
高度:“100%”,
为内容辩护:“中心”,
对齐项目:“居中”,
背景颜色:“rgb(145157230)”,
前10名,
标高:5,
边界半径:5
}}
activeOpacity={0.8}>
创建帐户
忘记密码
);
}
const styles=StyleSheet.create({
容器:{
弹性:1,
背景颜色:“#fff”,
对齐项目:“居中”,
为内容辩护:“中心”,
},
标志:{
位置:'绝对',
身高:100,
宽度:150,
resizeMode:“包含”,
前三名:“3%”
},
登录输入:{
位置:'相对',
身高:50,
边框颜色:“黑色”,
背景颜色:“rgb(240240242)”,
边界半径:10,
宽度:280,
颜色:'黑色',
textAlign:'中心',
为内容辩护:“中心”,
对齐项目:“居中”,
边框颜色:“白色”,
},
输入容器:{
位置:'绝对',
排名前:“18%”,
对齐项目:“居中”,
},
密码输入:{
位置:'相对',
身高:50,
边框颜色:“黑色”,
背景颜色:“rgb(240240242)”,
边界半径:10,
宽度:280,
颜色:'黑色',
textAlign:'中心',
为内容辩护:“中心”,
对齐项目:“居中”,
边框颜色:“白色”,
前10名
},
登录按钮视图:{
位置:'绝对',
身高:46,
宽度:“70%”,
排名前:“80%”
}
});
试着像这样使用组件:
<KeyboardAvoidingView behavior={'height'} enabled style={styles.container}>
<Image style={styles.logo} source={
{
uri: "https://i.ibb.co/4JK4T3P/deale-logo.jpg",
}} />
<StatusBar style="auto" />
<View style={styles.inputContainer} >
<TextInput
style={styles.loginInput}
placeholder='Phone Number or Email'
/>
<TextInput
style={styles.passwordInput}
placeholder='Password'
/>
<TouchableOpacity
style={{
width: 280,
height: 50,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'rgb(255, 77, 77)',
elevation: 5,
borderRadius: 10,
top: 35
}}
activeOpacity={0.8}>
<Text
style={{
color: 'white',
fontSize: 15,
fontWeight: 'bold',
}} >
LOG IN
</Text>
</TouchableOpacity>
<Text
onPress={() => console.log('g')}
style={{
position: 'relative',
top: '23%',
fontWeight: 'bold',
}} >
OR LOGIN WITH SOCIAL MEDIA ACCOUNT?
</Text>
<View style={{
flex: 1,
flexDirection: 'row',
bottom: 30,
justifyContent: 'space-evenly',
top: '22%',
width: 300
}} >
<TouchableOpacity activeOpacity={0.5} >
<Image source={
{ uri: 'https://cdn3.iconfinder.com/data/icons/popular-services-brands/512/facebook-512.png' }}
style={{
width: 60,
height: 60,
}} />
</TouchableOpacity>
<TouchableOpacity activeOpacity={0.5} >
<Image source={
{ uri: 'https://lh3.googleusercontent.com/COxitqgJr1sJnIDe8-jiKhxDx1FrYbtRHKJ9z_hELisAlapwE9LUPh6fcXIfb5vwpbMl4xl9H9TRFPc5NOO8Sb3VSgIBrfRYvW6cUA' }}
style={{
width: 60,
height: 60,
}} />
</TouchableOpacity>
</View>
</View >
<View style={styles.loginButtonView} >
<TouchableOpacity
onPress={
() => navigation.navigate('Create')
}
style={{
width: '100%',
height: '100%',
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'rgb(145, 157, 230)',
top: 10,
elevation: 5,
borderRadius: 5
}}
activeOpacity={0.8}>
<Text
style={{ color: 'white', fontSize: 15, fontWeight: 'bold' }} >
CREATE ACCOUNT
</Text>
</TouchableOpacity>
<TouchableOpacity
style={{
justifyContent: 'center',
alignItems: 'center',
top: '40%'
}}
activeOpacity={0.1}>
<Text
style={{
color: 'black',
fontSize: 16,
top: 5
}} >
FORGOT PASSWORD
</Text>
</TouchableOpacity>
</View>
</KeyboardAvoidingView >
登录
console.log('g')}
风格={{
位置:'相对',
前三名:“23%”,
fontWeight:'粗体',
}} >
还是使用社交媒体帐户登录?
navigation.navigate('Create')
}
风格={{
宽度:“100%”,
高度:“100%”,
为内容辩护:“中心”,
对齐项目:“居中”,
背景颜色:“rgb(145157230)”,
前10名,
标高:5,
边界半径:5
}}
activeOpacity={0.8}>
创建帐户
忘记密码
尝试在位置使用不同的值。
如果你想要更少的工作,你可以使用。这是一个很好的库,可以在不同的布局中使用键盘。我自己找到了原因。这是因为我根据百分比设置了我的位置,键盘的弹出改变了尺寸,导致了位置的变化。没有称为位置的道具,它给了我错误抱歉,道具的正确名称是。
<KeyboardAvoidingView behavior={'height'} enabled style={styles.container}>
<Image style={styles.logo} source={
{
uri: "https://i.ibb.co/4JK4T3P/deale-logo.jpg",
}} />
<StatusBar style="auto" />
<View style={styles.inputContainer} >
<TextInput
style={styles.loginInput}
placeholder='Phone Number or Email'
/>
<TextInput
style={styles.passwordInput}
placeholder='Password'
/>
<TouchableOpacity
style={{
width: 280,
height: 50,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'rgb(255, 77, 77)',
elevation: 5,
borderRadius: 10,
top: 35
}}
activeOpacity={0.8}>
<Text
style={{
color: 'white',
fontSize: 15,
fontWeight: 'bold',
}} >
LOG IN
</Text>
</TouchableOpacity>
<Text
onPress={() => console.log('g')}
style={{
position: 'relative',
top: '23%',
fontWeight: 'bold',
}} >
OR LOGIN WITH SOCIAL MEDIA ACCOUNT?
</Text>
<View style={{
flex: 1,
flexDirection: 'row',
bottom: 30,
justifyContent: 'space-evenly',
top: '22%',
width: 300
}} >
<TouchableOpacity activeOpacity={0.5} >
<Image source={
{ uri: 'https://cdn3.iconfinder.com/data/icons/popular-services-brands/512/facebook-512.png' }}
style={{
width: 60,
height: 60,
}} />
</TouchableOpacity>
<TouchableOpacity activeOpacity={0.5} >
<Image source={
{ uri: 'https://lh3.googleusercontent.com/COxitqgJr1sJnIDe8-jiKhxDx1FrYbtRHKJ9z_hELisAlapwE9LUPh6fcXIfb5vwpbMl4xl9H9TRFPc5NOO8Sb3VSgIBrfRYvW6cUA' }}
style={{
width: 60,
height: 60,
}} />
</TouchableOpacity>
</View>
</View >
<View style={styles.loginButtonView} >
<TouchableOpacity
onPress={
() => navigation.navigate('Create')
}
style={{
width: '100%',
height: '100%',
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'rgb(145, 157, 230)',
top: 10,
elevation: 5,
borderRadius: 5
}}
activeOpacity={0.8}>
<Text
style={{ color: 'white', fontSize: 15, fontWeight: 'bold' }} >
CREATE ACCOUNT
</Text>
</TouchableOpacity>
<TouchableOpacity
style={{
justifyContent: 'center',
alignItems: 'center',
top: '40%'
}}
activeOpacity={0.1}>
<Text
style={{
color: 'black',
fontSize: 16,
top: 5
}} >
FORGOT PASSWORD
</Text>
</TouchableOpacity>
</View>
</KeyboardAvoidingView >