我正在尝试创建覆盖在屏幕上。
但问题是儿童视图即弹出屏幕也有顶部和底部的安全区域添加。
我不想只在一个屏幕上使用它:https://www.npmjs.com/package/react-native-safe-area-context
代码如下:
const SomeScreen: FC = () => {
const [isSuccess, setIsSuccess] = useState<boolean>(true);
return (
<SafeAreaView style={styles.container}>
<View style={styles.container}>
<Text style={styles.titleText}> Some Text </Text>
{ isSuccess ? (
<View style={styles.popUpContainer}>
<View style={styles.popUpBody}>
<Text style={styles.titleText}> {titleText} </Text>
<Text style={styles.subtext}> {subtext} </Text>
<Text style={styles.subtext}> {buttonText} </Text>
<Button title={buttonText} onPress={setIsSuccess(false);} />
</View>
</View>
) : null}
</View>
</SafeAreaView>
);
};
StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'orange',
},
popUpContainer: {
height: '100%',
width: '100%',
position: 'absolute',
flex: 1,
backgroundColor: 'rgba(52, 52, 52, 0.6)',
justifyContent: 'center',
},
popUpBody: {
backgroundColor: '#fff',
height: '50%',
width: '80%',
justifyContent: 'center',
},
});
我尝试了可能的解决方案,它适用于某些设备,但它不是理想的解决方案:
popUpContainer: {
height: '120%',
width: '100%',
position: 'absolute',
top: - 50,
flex: 1,
backgroundColor: 'rgba(52, 52, 52, 0.6)',
justifyContent: 'center',
},
1条答案
按热度按时间bvuwiixz1#
有两种方法可以做到这一点。
1.您可以使用
Modal
组件而不是绝对View
。1.用
View
包裹SafeAreaView
,如下所示:上更多的东西按钮
onPress
绑定是错误的。这一定是