如何在 React Native 中垂直和水平对齐父组件的子组件 'on top'?
How to vertically and horizontally align child components 'on top' of parent in React Native?
在 React Native 中,我很难让两个子组件垂直和水平对齐它们的父元素 'on top'。
我正在尝试将 Loader
和 Button
放在 RTCView
之上。
我目前在父级中返回了这个 JSX:
if (localStream) {
return (
<View style={styles.videoViewWrapper}>
<RTCView style={styles.android} streamURL={localStream.toURL()} />
<View
style={{ justifyContent: 'center', position: 'absolute', }}
>
<Loader
title={callDetails}
>
</Loader>
<Button
mode="contained"
style={{ width: 150, margin: 100 }}
onPress={handleCancelCall}>
Cancel
</Button>
</View>
</View>
);
}
里面还有这个 Loader
:
Loader = props => {
return (
<>
<StatusBar
hidden
/>
<View style={{
flex: 1,
alignItems: 'center',
}}>
<Text
style={styles.text}
>
{props.title}
</Text>
<ProgressBar color={Colors.green800} indeterminate={true} style={{ width: 100, height: 1 }} />
</View>
</>
)
}
const styles = StyleSheet.create({
text: {
fontFamily: "Quicksand-Light",
fontSize: 22,
textAlign: "center",
color: "#333333",
marginBottom: 25,
justifyContent: 'center',
}
});
虽然我已经实现了让 Loader
显示其父项的 'on top',但我无法将它们移动到屏幕顶部的位置。
如有任何帮助,我们将不胜感激!
您的绝对定位视图需要覆盖其父视图。您可以通过将 top: 0, left: 0, right: 0, bottom: 0
添加到其样式
来实现此目的
您可能需要编辑按钮样式。我从您的代码中删除了它,如果您需要边距或特定宽度,请添加它。
<View style={{ justifyContent: 'center', alignItems: 'center', position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}>
<Loader title={callDetails} />
<Button mode="contained" onPress={handleCancelCall}>Cancel</Button>
</View>
在 React Native 中,我很难让两个子组件垂直和水平对齐它们的父元素 'on top'。
我正在尝试将 Loader
和 Button
放在 RTCView
之上。
我目前在父级中返回了这个 JSX:
if (localStream) {
return (
<View style={styles.videoViewWrapper}>
<RTCView style={styles.android} streamURL={localStream.toURL()} />
<View
style={{ justifyContent: 'center', position: 'absolute', }}
>
<Loader
title={callDetails}
>
</Loader>
<Button
mode="contained"
style={{ width: 150, margin: 100 }}
onPress={handleCancelCall}>
Cancel
</Button>
</View>
</View>
);
}
里面还有这个 Loader
:
Loader = props => {
return (
<>
<StatusBar
hidden
/>
<View style={{
flex: 1,
alignItems: 'center',
}}>
<Text
style={styles.text}
>
{props.title}
</Text>
<ProgressBar color={Colors.green800} indeterminate={true} style={{ width: 100, height: 1 }} />
</View>
</>
)
}
const styles = StyleSheet.create({
text: {
fontFamily: "Quicksand-Light",
fontSize: 22,
textAlign: "center",
color: "#333333",
marginBottom: 25,
justifyContent: 'center',
}
});
虽然我已经实现了让 Loader
显示其父项的 'on top',但我无法将它们移动到屏幕顶部的位置。
如有任何帮助,我们将不胜感激!
您的绝对定位视图需要覆盖其父视图。您可以通过将 top: 0, left: 0, right: 0, bottom: 0
添加到其样式
您可能需要编辑按钮样式。我从您的代码中删除了它,如果您需要边距或特定宽度,请添加它。
<View style={{ justifyContent: 'center', alignItems: 'center', position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}>
<Loader title={callDetails} />
<Button mode="contained" onPress={handleCancelCall}>Cancel</Button>
</View>