在嵌套视图中的React Native中,样式存在问题。
如您所见,我在水平分配文本时遇到了问题
代码:
let width = Dimensions.get('window').width - 42;
const styles = StyleSheet.create({
cardBorder: {
marginTop: 25,
marginLeft: 20,
marginRight: 20,
borderColor: "grey",
borderWidth: 1,
borderRadius: 5,
overflow: 'hidden',
},
titleText: {
...FONT_SEMI_BOLD,
marginTop: 10,
marginLeft: 10,
fontSize: 17,
flex: 1,
},
priceText: {
...FONT_SEMI_BOLD,
marginTop: 10,
marginLeft: 10,
marginRight: 10,
fontSize: 17,
alignSelf: 'flex-end',
flex: 1,
},
});
export default class CardDetailScreen extends Component {
render() {
return (
<SafeAreaView>
<HeaderReturn />
<View style={styles.cardBorder}>
<Image
style={{ height: width, width: width }}
source={{ uri: testData[0].uri }}
/>
<View
style={{
flexDirection: 'row',
justifyContent: "space-between",
}}
>
<Text style={styles.titleText}>{testData[0].name}</Text>
<Text style={styles.priceText}>{testData[0].price}</Text>
</View>
</View>
</SafeAreaView>
);
}
}
任何帮助都值得赞赏,它看起来非常简单,但我无法使其正常工作。谢谢!
答案 0 :(得分:1)
似乎您想在视图的左侧显示名称,在价格的右侧显示价格。所以你可以这样尝试
priceText: {
...FONT_SEMI_BOLD,
marginTop: 10,
marginLeft: 'auto',
marginRight: 10,
fontSize: 17,
},
只需提及您的marginLeft: 'auto'
。还要从父视图的样式中删除justifyContent: "space-between",
。
答案 1 :(得分:0)
尝试将styles.cardBorder设置为具有alignItems: 'center'
和'width': '100%'
。我认为您的文字会以其容器中的文字居中,但容器的宽度没有全部显示。也许您只需要'width': '100%'
。