背景
我有一个图像意味着要显示,而其他内容正在加载。
我希望它是居中的,在所有设备上看起来都一样。
问题
目前,图像显示在左上角。
我想要它居中-水平和垂直。
问题
如何使图像居中并具有正确的大小?
图像的高度是776 px,宽度是600 px。我知道我需要在样式表中设置图像大小。根据我的理解,我可以使用JSX来做到这一点。
import React from 'react';
import { Image, StyleSheet, View } from 'react-native';
const logoImage = require('../assets/images/logo.jpg');
const LoadingScreen = () => (
<View style={styles.container}>
<Image style={styles.logo} source={logoImage} />
</View>
);
const styles = StyleSheet.create({
container: {
},
logo: {
justifyContent: 'center',
alignItems: 'center',
width: 300,
height: 400,
},
});
export default LoadingScreen;
5条答案
按热度按时间lc8prwob1#
您需要为
justifyContent
设置<View>
的样式,为<Image>
设置alignItems
的样式。应该是这样的:
或者您可以在
<Image>
上使用alignSelf
使其居中,但仍需要在<View>
上添加justifyContent
以使其垂直居中。yc0p9oo02#
视图容器的样式应为
高度确保它跨越整个页面,从而使图像成为垂直和水平对齐。
对于图像大小,我认为使用百分比而不是定义明确的宽度/高度将达到目的。
7gyucuyw3#
在视图中设置:
在儿童:
执行任务。
vvppvyoh4#
在父视图中设置:
在Child Set中:
ugmeyewa5#
* 如何使图像居中并具有正确的大小?*
在React Native中使用Flexbox的The documentation告诉我们为什么你的尝试失败了。
调整内容
justifyContent
描述了如何在容器的主轴内对齐 children(对于React Native,默认为 column-wise)。
对齐项目
alignItems
描述了如何将 children 沿着其容器的横轴对齐。因此,在
<Image />
元素上设置alignItems
和justifyContent
会影响图像的 * 子元素 * 的位置。但在您的例子中,
<Image />
没有任何子节点,因此效果为零。如何让代码按预期工作
要对图像进行样式化,我们需要为图像的 parent 设置
alignItems
和justifyContent
,在您的示例中是<View />
元素。假设
<View />
的样式是container
(<Image />
是logo
),下面的样式表设置将使图像在两个方向上居中。1替代方案
自对齐
alignSelf
具有与alignItems
相同的选项和效果,但不影响容器中的子元素,您可以将此属性应用于单个元素。只需在图像本身上设置
alignSelf
,而不是在其父图像上设置alignItems
。如果图像应该居中,而图像下方的文本应该左对齐,则此方法很方便。
考虑下面的例子。
在纵向模式下,所有内容都适合屏幕,并在水平和垂直方向居中。
在横向模式下,图像+文本不适合垂直。滚动到顶部时应显示整个图像,而滚动到底部时应显示所有文本。2
1
flex: 1
子句使container
跨越整个屏幕高度,而不仅仅是图像高度。2复制:download并解压缩到您选择的某个目录。
切换到该目录并运行
npm install
,然后运行npm start
。(You还需要一个模拟器或物理设备来运行应用程序。)