我想让所有孩子都填满可用空间,并且彼此重叠,所以只有最后一个孩子可见。
<View style={???}>
<View style={???} /> // Not visible (if bg color set on next child)
<View style={???} />
</View>
我尝试了flex
,position
,alignSelf: stretch
等的各种组合,但无法找到获胜的组合。
答案 0 :(得分:2)
我想你想要这样的东西:
<强>组件/ index.js:强>
import React from 'react';
import {
View,
} from 'react-native';
import style from './style';
export default class Component extends React.Component {
render() {
return (
<View style={style.root}>
<View style={style.childOne} />
<View style={style.childTwo} />
</View>
);
}
}
<强>组件/ style.js:强>
import { StyleSheet } from 'react-native';
export default StyleSheet.create({
root: {
flex: 1,
position: 'relative',
},
child1: {
...StyleSheet.absoluteFillObject,
},
child2: {
...StyleSheet.absoluteFillObject,
},
});
因此,具有View
样式的root
将填充其父级的所有空格,因为它具有flex: 1
。并且它有position: relative
,因此具有绝对定位的孩子将采取相应的行动。
View
和child1
的 child2
都具有绝对定位(StyleSheet.absoluteFillObject
是{position: 'absolute', top: 0, right: 0, bottom: 0, left: 0}
docs here的快捷方式。 child1
和child2
将重叠,child2
将位于child1
之上,因为它会在稍后呈现。