在我的App.js中,我设置了:
import * as NavigationBar from "expo-navigation-bar";
...In my component
useEffect(() => {
if (android) {
NavigationBar.setBackgroundColorAsync("transparent");
}
}, []);
这将我的导航栏设置为在所有屏幕中透明,但当模态可见时:
<Modal
animationType="none"
transparent
visible={isVisible}
presentationStyle="overFullScreen"
hardwareAccelerated
>
...导航栏变成白色,甚至当我试图设置它也在我的模态组件,以及,任何已知的解决方案?
1条答案
按热度按时间z9ju0rcb1#
我在Android中也遇到过这个问题。我认为发生的是react-native模式只是简单地使用styles.xml中的默认
android:navigationBarColor
,所以每次弹出它时,它都会覆盖当前导航栏的颜色,直到它被取消。标志状态BarTransparent对我不起作用。
我可以通过导航到
res/values/styles.xml
修复此问题然后在AppTheme样式中添加navigationBarColor使其透明。
然后在我的react原生代码中,我使用了
react-native-navigation-bar-color
。我相信这应该适用于expo-navigation-bar
,因为主要问题源于react原生模态试图覆盖默认的navBarColor值。希望这能帮到什么人!