React native 如何在不更改子对象的情况下将视图与中心对齐';什么位置?
}视图React native 如何在不更改子对象的情况下将视图与中心对齐';什么位置?,react-native,flexbox,React Native,Flexbox,}视图是您的滚动视图的直接子视图。因此,您可以使用contentContainerStyle设置ScrollView的样式,并像这样将其居中对齐 <View style={Styles.docsContainer}> {arr.map((document, index) => { return ( <TouchableOpacity key={index} style={[St
是您的滚动视图的直接子视图。因此,您可以使用contentContainerStyle
设置ScrollView
的样式,并像这样将其居中对齐
<View style={Styles.docsContainer}>
{arr.map((document, index) => {
return (
<TouchableOpacity key={index} style={[Style.docStyle} onPress={null}>
<Icon name='file-text-o'/>
<Text>{document.name}</Text>
</TouchableOpacity>
);
})}
</View>
const Styles: {
docsContainer: {
flexDirection: 'row',
flexWrap: 'wrap',
padding: 20,
},
docStyle: {
alignItems: 'center',
padding: 20,
margin: 5,
marginBottom: 10,
borderRadius: 8,
width: 170
}
{儿童}
我想这正是你想要的。事实上,我们不需要父视图,我们只需要scrollView作为flewGrow 1,它使scrollView根据设备具有完整的高度和宽度
我的做法:
<View style={{height: '100%', width: '100%'}}>
<ScrollView
contentContainerStyle={{
flexGrow: 1,
justifyContent: 'center',
alignItems: 'center',
}}
>
<View style={{flexDirection: 'row', flexWrap: 'wrap', padding: 20}}>
{children}
</View>
<ScrollView>
</View>
马赫什·南达姆
试试这个。水平居中
如果您只想水平居中视图
,可以将对齐项目:“居中”
设置为滚动视图
的内容容器样式
<ScrollView contentContainerStyle={{ flexGrow: 1, justifyContent: 'center', alignItems: 'center' }}>
<View style={{
alignItems: 'center',
justifyContent: 'center',
flex: 1,
}}>
<Text>mahesh nandam</Text>
</View>
</ScrollView>
如果您所期望的布局与两个屏幕截图中的布局不同,请共享一个简单的布局草图。视图
内部滚动视图
占据了100%的高度和宽度。因此无法按照您的样式对齐到中心。是否有任何方法可以根据内容缩小视图
?您也可以为视图
尝试相同的样式。或者更好的是,您可以避免使用它,并通过样式道具将这些样式直接提供给滚动视图
。如果我将相同的样式应用于视图
,视图中的孩子将受到干扰,这是我不希望发生的。如果我通过style prop将样式应用于ScrollView
,则得到一个错误,即ScrollView
子布局必须通过contentContainerStyle
应用。在我的回答中,我只使用了contentContainerStyle
,您尝试过吗?是的,我已经尝试过了。但没有效果。这就是我在第一条评论中解释的。我假设如果我们可以根据内容缩小视图
,那么我们可以将其对齐到中心。我的父视图视图
中有一些其他内容,而不是滚动视图
你能画出你想要的布局吗?是的,这是我想要实现的,我已经厌倦了这种样式。但没有效果,因为我的儿童视图占据了整个屏幕。所以无法对齐到中心。@Kishore您的意思是代码中的{children}
?在这种情况下,为什么要将全屏项目居中?是否正在寻找通过在父视图上设置样式来缩小它的方法?如果问题更多的是关于子组件,可以发布一些子组件的代码吗?是的,我希望子组件视图
缩小。这样它就可以移动了。请看一看编辑好的儿童问题code@Kishore我仍在努力完全理解这个问题。是什么阻止您在样式.docsContainer上设置宽度或高度?我将宽度设置为:“90%”,高度设置为“100%”
。这次视图
移动到屏幕中央。但是由于我给了一些特定的宽度视图
并没有根据它的内容缩小,而是在视图
中留了一些额外的空间,而且内容看起来并不在中间。因此,我正在寻找一种样式,它可以完全根据内容收缩视图,而不在视图中留下任何空间`
<ScrollView contentContainerStyle={{ flexGrow: 1, justifyContent: 'center', alignItems: 'center' }}>
<View style={{
alignItems: 'center',
justifyContent: 'center',
flex: 1,
}}>
<Text>mahesh nandam</Text>
</View>
</ScrollView>
<View style={{ height: '100%', width: '100%' }}>
<Text>Other content</Text>
<ScrollView contentContainerStyle={{ alignItems: 'center' }}>
<View style={{ flexDirection: 'row', flexWrap: 'wrap', padding: 20, backgroundColor: 'red' }}>
<Text>children</Text>
</View>
</ScrollView>
</View>
<View style={{ height: '100%', width: '100%' }}>
<Text>Other content</Text>
<ScrollView contentContainerStyle={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<View style={{ flexDirection: 'row', flexWrap: 'wrap', padding: 20, backgroundColor: 'red' }}>
<Text>children</Text>
</View>
</ScrollView>
</View>