reactjs React Native-将视图的高度设置为与内容相同

yc0p9oo0  于 2022-12-03  发布在  React
关注(0)|答案(2)|浏览(151)

我有一个父容器View,它有两个子容器Views,其中flexDirection: row
一个子级View的高度大于另一个child视图的高度,这是因为它所包含的内容。
我到底想干什么?
我想在其中一个高度较短的子视图中放置垂直居中的文本。在下面的示例中,文本“BUDGET”应该位于旁边图像的中心。
这里,是我的问题的零食链接。
https://snack.expo.io/ByWT6Cb5V
但问题是,如果我执行alignSelf: center,react native会考虑较大子视图的高度,并根据上下文将文本居中

P.SmarginTop为我做了这份工作,但我觉得,这是一种变通。
**我真实的的问题是,**为什么内容较少的视图的高度与其兄弟视图的高度相同?

uxhixvfz

uxhixvfz1#

事实上我不明白你的问题whish你说((在下面的例子中,文本'预算'应该在中心的图像,这是旁边的。))如果你想显示一些东西里面的图像,例如你说显示'预算'在中心部分,你应该使用图像背景:

import * as React from 'react';
import { Text, View, StyleSheet, Image,ImageBackground } from 'react-native';
import { Constants } from 'expo';

// You can import from local files
//import AssetExample from './components/AssetExample';

// or any pure javascript modules available in npm
// import { Card } from 'react-native-paper';

export default class App extends React.Component {
  render() {
    return (
      <View style={{flex:1, marginTop:100}}>
            <View style={styles.budgetBlock}>
                            <View style={styles.budgetTextBlock}>
                                <ImageBackground source={require('./assets/snack-icon.png')} style={{width:50, height:50,justifyContent:'center',alignItems:'center'}} >
                                <Text style={styles.budgetText}> BUDGET </Text>
</ImageBackground>
                            </View>
                            <View style={styles.budgetValueBlock}>
                                    <Text style={styles.budgetType}> Too High </Text>
                                    <Text style={styles.budgetType}> Too High</Text>
                                    <Text style={styles.budgetType}> Too High</Text>
                                    <Text style={styles.budgetType}> Too High</Text>
                            </View>
                        </View>
        </View>
    );
  }
}

但如果你不是这个意思,而你的“居中”目标是垂直对齐,你应该这样做:

budgetTextBlock: {
    flexDirection: 'row',
    alignItems: 'center',<<<<<<this shows BUDGET in center
    height: 'auto',

}
vktxenjb

vktxenjb2#

在子组件 Package 中使用flex:1

<View style={{flex:1}}>...</View>

相关问题