Expo React Native Android端BlurView加载组件的持久化透明覆盖层问题求助
Expo React Native Android端BlurView加载组件的持久化透明覆盖层问题求助
我正在用Expo开发React Native应用,最近在做一个用Expo BlurView实现的加载组件时遇到了头疼的问题。
具体来说,当我为了在Android上测试添加experimentalBlurMethod="dimezisBlurView"后,屏幕上始终有一层透明覆盖层,把原本深灰色的内容都变成浅灰色了。除此之外其他功能都正常:加载状态为true时,组件能正常显示模糊效果;但这个覆盖层的问题一直存在,很影响视觉体验。
我已经尝试过这些解决方案,但都没效果:
- 条件渲染(根据loading状态直接返回null)
- 调整BlurView的intensity参数,尝试了不同数值
- 给BlurView添加
pointerEvents="none"属性
我期望的正常行为是:
- 加载状态激活时,模糊覆盖层正常显示
- 加载完成(loading为false)时,覆盖层完全消失,不会留下任何残留效果
下面是我的组件代码:
import React from 'react'; import { View, ActivityIndicator, StyleSheet } from 'react-native'; import { BlurView } from 'expo-blur'; import Colors from '@/constants/Colors'; const LoadingOverlay = ({ loading }: { loading?: boolean }) => { if (!loading) return null; return ( <View style={styles.container}> <BlurView intensity={20} style={styles.blurView} experimentalBlurMethod="dimezisBlurView"> <View style={styles.loadingBox}> <ActivityIndicator size="large" color={Colors.PRIMARY} /> </View> </BlurView> </View> ); }; const styles = StyleSheet.create({ container: { ...StyleSheet.absoluteFillObject, zIndex: 999, }, blurView: { flex: 1, justifyContent: 'center', alignItems: 'center', }, loadingBox: { backgroundColor: Colors.WHITE, padding: 20, borderRadius: 20, }, }); export default LoadingOverlay;
有没有大佬能帮忙排查并解决这个BlurView的渲染问题呀?
备注:内容来源于stack exchange,提问作者toofast
相关产品推荐
相关产品推荐

