![](/img/trans.png)
[英]Whole contents are pushed up when using KeyboardAvoidingView in react native
[英]BackgroundImage being pushed up with KeyboardAvoidView on Android with React Native
我想在出現鍵盤時停止推送 BackgroundImage,並且只應向上推送 TextInput 組件和按鈕。 這適用於 iOS 上的當前代碼,但在 Android 上無法正常工作。我嘗試使用 ImageBackground 的absolute
ImageBackground
和ImageBackground
的flex
和height
,但到目前為止沒有任何效果。 以下是Android上的代碼和截圖:
<ImageBackground
source={require('../../../assets/images/backgroundImage.png')}
style={{
// flex: 1,
justifyContent: 'center',
// height: '100%',
position: 'absolute',
top: 0,
left: 0,
bottom: 0,
right: 0,
}}
resizeMode='cover'>
<KeyboardAvoidingView
style={{ flexGrow: 1 }}
enabled
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}>
<View
style={{
flex: 1,
justifyContent: 'flex-end',
alignItems: 'center',
paddingHorizontal: 16,
paddingVertical: 1,
flexDirection: 'column',
height: '100%',
}}>
<Image
source={require('../../../assets/images/logo.png')}
style={{ marginBottom: 50 }}
resizeMode='contain'
/>
<SafeAreaView
style={{
height: '50%',
justifyContent: 'flex-end',
width: '100%',
}}>
<View
style={{
width: '100%',
justifyContent: 'flex-end',
marginBottom: 10,
}}>
<TextInput
ref={this.classIdRef}
style={{
width: '100%',
backgroundColor: '#fff',
height: 50,
borderRadius: 4,
marginBottom: 15,
paddingHorizontal: 15,
}}
placeholderTextColor='rgb(218, 218, 218)'
placeholder='Class ID'
value={roomId}
onChangeText={(text) => this.setRoomId({ roomId: text })}
/>
<TextInput
ref={this.nicknameRef}
style={{
width: '100%',
backgroundColor: '#fff',
height: 50,
borderRadius: 4,
marginBottom: 20,
paddingHorizontal: 15,
}}
placeholder='Nickname'
placeholderTextColor='rgb(218, 218, 218)'
value={nickName}
onChangeText={(text) =>
this.setNickName({ nickName: text })
}
/>
<TouchableOpacity
onPress={this.navigateToClassroomHandler}
style={{
backgroundColor: 'rgb(251, 158, 85)',
width: '100%',
height: 50,
justifyContent: 'center',
alignItems: 'center',
borderRadius: 4,
}}
disabled={roomId === '' || nickName === ''}>
<Text
style={{
fontSize: 18,
color: '#fff',
fontWeight: 'bold',
}}>
Attend Class
</Text>
</TouchableOpacity>
</View>
</SafeAreaView>
</View>
</KeyboardAvoidingView>
</ImageBackground>
更新 1:抱歉,忘記添加屏幕截圖(我已經在清單文件中添加了android:windowSoftInputMode="adjustResize"
):
對於android:windowSoftInputMode="adjustPan"
,它看起來如下所示:
我認為您可以將其添加到您的 AndroidManifest.xml 文件中。
android:windowSoftInputMode="adjustPan"
然后視圖不會縮小並且文本輸入會被推高。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.