【发布时间】:2018-11-02 06:44:40
【问题描述】:
我正在尝试在我的 React Native 项目中为边距样式属性使用百分比值,但它似乎降低了我的 View 组件之一的高度。如果我用绝对值替换百分比值,则没有更多问题并且可以正常工作。您是否尝试在 React Native 中使用百分比值作为边距?以下是重现此问题的一些代码示例:
import React, { Component } from 'react';
import { Text, View, StyleSheet } from 'react-native';
export default class App extends Component {
render() {
return (
<View style={styles.scene}>
<View style={styles.card}>
<View style={styles.container}>
<Text>Hello World</Text>
</View>
</View>
</View>
);
}
}
const styles = StyleSheet.create({
scene: {
backgroundColor: '#F9E8D5',
flex: 1,
justifyContent: 'flex-start',
alignItems: 'center',
flexDirection: 'column'
},
card: {
backgroundColor: '#E6D5C3',
flex: 0.2,
flexDirection: 'column',
marginTop: '20%' // Replace by 20
},
container: {
backgroundColor: '#FFFFFF',
flex: 1,
flexDirection: 'column',
justifyContent: 'center'
}
});
非常感谢!
【问题讨论】:
-
当您使用百分比时,它适用于您正在工作的“框”(而不是屏幕高度)。在您的代码中,您将获得
backgroundColor="#e6d5c3"框的 20% -
@gaback 不,这不是真的 marginTop: '20%' 是“包含框高度的 20%,即场景”。填充很好,问题是为什么它弄乱了“容器”视图的高度(在 android 和 Ios 上,但不在网络上)
标签: css reactjs react-native flexbox react-native-flexbox