Вид позиции внизу (Липкий нижний колонтитул), React Native
У меня есть этот компонент:
render() {
return (
<ScrollView style={styles.container}>
<View style={styles.body}>
<View style={styles.LogoContainer}>
<Image resizeMode="contain" style={styles.logo} source={require('../../images/logo.png')}/>
</View>
<View style={styles.bottomContainer}>
<TextInput selectionColor="white" placeholderTextColor="white" placeholder="Email" style={styles.input} underlineColorAndroid='transparent'/>
<TextInput selectionColor="white" placeholderTextColor="white" secureTextEntry={true} placeholder="Password" style={styles.input} underlineColorAndroid='transparent'/>
<TouchableOpacity onPress={() => {}} style={styles.btn}>
<Text style={styles.btnTxt}>LOG IN</Text>
</TouchableOpacity>
</View>
</View>
<View style={styles.footer}>
<TouchableOpacity onPress={() => {}}>
<Text style={[styles.footerTxt, {color: '#fff'}]}>Don’t have an account?</Text>
</TouchableOpacity>
</View>
</ScrollView>
)
}
То, что я хочу, - это разместить самый последний вид с style={styles.footer}
Липкий нижний колонтитул. Я пытался установить position: "absolute, bottom:0"
, но не работает. Родительский контейнер (ScrollView
) имеет height:"100%"
а также position:"relative"
, если это имеет значение для React Native.
1 ответ
Я нашел этот путь. Сначала удалите <View style={styles.body}>
элемент и добавить contentContainerStyle
к ScrollView
как это:
render() {
return (
<ScrollView contentContainerStyle={styles.container}>
<View style={styles.LogoContainer}>
<Image resizeMode="contain" style={styles.logo} source={require('../../images/logo.png')}/>
</View>
<View style={styles.bottomContainer}>
<TextInput selectionColor="white" placeholderTextColor="white" placeholder="Email" style={styles.input} underlineColorAndroid='transparent'/>
<TextInput selectionColor="white" placeholderTextColor="white" secureTextEntry={true} placeholder="Password" style={styles.input} underlineColorAndroid='transparent'/>
<TouchableOpacity onPress={() => {}} style={styles.btn}>
<Text style={styles.btnTxt}>LOG IN</Text>
</TouchableOpacity>
</View>
<View style={styles.footer}>
<TouchableOpacity onPress={() => {}}>
<Text style={[styles.footerTxt, {color: '#fff'}]}>Don’t have an account?</Text>
</TouchableOpacity>
</View>
</ScrollView>
)
}
Затем добавьте эти стили в ScrollView
:
const styles = StyleSheet.create({
container:{
flex: 1,
justifyContent: 'space-between',
}, ....
и при необходимости можно добавить height
к ScrollView > View
,