【发布时间】:2019-03-30 16:48:20
【问题描述】:
我正在开发我的第一个 react-native 应用程序,并且正在尝试围绕布局进行思考。到目前为止,这是我的代码:
import React from 'react'
import { StyleSheet, View, Text, TouchableOpacity } from 'react-native'
function App() {
return (
<View style={styles.container}>
<Text style={styles.text}>My App</Text>
<View style={styles.buttonContainer}>
<TouchableOpacity>
<Text>My Button</Text>
</TouchableOpacity>
</View>
</View>
)
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'white',
alignItems: 'center',
justifyContent: 'center'
},
text: {
fontSize: 45
},
buttonContainer: {
backgroundColor: 'gray',
paddingHorizontal: 20,
paddingVertical: 5
}
})
export default App
这呈现为:
但是,我希望将文本垂直居中,但将按钮推到底部,略高于它。像这样的:
我能够通过添加获得该输出:
position: 'absolute',
bottom: 50
我的buttonContainer 样式,但我觉得这不是正确的方法。有没有合适的flex-y 方法来做到这一点?
【问题讨论】:
-
你需要为它增加权重。首先找出你想要显示文本和按钮的比率。例如:你可以认为你可以将屏幕分成 6 个相等的部分,然后 5 部分得到文本,下 1 部分显示按钮。你需要为其添加 flex:5 属性到文本样式和 flex:1 属性到按钮样式
-
如果您希望
My App在中心完美对齐,请考虑三个弯曲的Views:顶部和底部高度为 20%,中间一个高度为 60%。将您的按钮放在底部View,alignItems属性设置为flex-end。
标签: react-native layout flexbox