Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 如何在不更改子对象的情况下将视图与中心对齐';什么位置?_React Native_Flexbox - Fatal编程技术网

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>