これがレイアウトだとします:
<View style={styles.container}>
<View style={styles.titleWrapper}>
...
...
</View>
<View style={styles.inputWrapper}>
...
...
</View>
<View style={styles.footer}>
<TouchableOpacity>
<View style={styles.nextBtn}>
<Text style={styles.nextBtnText}>Next</Text>
</View>
</TouchableOpacity>
</View>
</View>
画面の下部に配置するフッターのスタイルでビューを作成したい。フッターにalignSelf
プロパティを指定しようとしましたが、下部に配置する代わりに、画面の右側に配置します。フッターアイテムを最後まで貼り付けるにはどうすればよいですか?ありがとうございました。
React Nativeでは、flexDirection
のデフォルト値はcolumn
です(CSSとは異なり、row
です)。
したがって、flexDirection: 'column'
では、横軸は水平で、alignSelf
は左右に機能します。
フッターを下に固定するには、justifyContent: 'space-between'
をコンテナに適用します
次のアプローチを使用します。
<View style={styles.container}>
<View style={styles.contentContainer}> {/* <- Add this */}
<View style={styles.titleWrapper}>
...
</View>
<View style={styles.inputWrapper}>
...
</View>
</View>
<View style={styles.footer}>
...
</View>
</View>
var styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#F5FCFF',
},
titleWrapper: {
},
inputWrapper: {
},
contentContainer: {
flex: 1 // pushes the footer to the end of the screen
},
footer: {
height: 100
}
});
これにより、titleWrapper
とinputWrapper
のスタイルをアプリのレイアウトを壊さずに更新でき、コンポーネント自体の再利用が簡単になります:)
絶対位置は、次のようにフッターを修正する別の方法です。
footer: {
position: 'absolute',
height: 40,
left: 0,
top: WINDOW_HEIGHT - 40,
width: WINDOW_WIDTH,
}
これを行うには、スタイルシート要素position: 'absolute'を使用できます。
/*This is an Example to Align a View at the Bottom of Screen in React Native */
import React, { Component } from 'react';
import { StyleSheet, View, Text } from 'react-native';
export default class App extends Component {
render() {
return (
<View style={styles.containerMain}>
<Text> Main Content Here</Text>
<View style={styles.bottomView}>
<Text style={styles.textStyle}>Bottom View</Text>
</View>
</View>
);
}
}
const styles = StyleSheet.create({
containerMain: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
},
bottomView: {
width: '100%',
height: 50,
backgroundColor: '#EE5407',
justifyContent: 'center',
alignItems: 'center',
position: 'absolute', //Here is the trick
bottom: 0, //Here is the trick
},
textStyle: {
color: '#fff',
fontSize: 18,
},
});
スクロールビューに他のコンテンツを埋め込む
<View style={styles.container}>
<ScrollView> {/* <- Add this */}
<View style={styles.titleWrapper}>
...
</View>
<View style={styles.inputWrapper}>
...
</View>
</ScrollView>
<View style={styles.footer}>
...
</View>
</View>
反応ネイティブでは、position: 'absolute', bottom: 0,
のようないくつかのプロパティがあり、それらをボタンビューに指定します。