使用全屏主题时,在Android上反映原生'模态'组件不覆盖整个屏幕

时间:2016-08-24 14:32:14

标签: android react-native

标题说明了一切。我编辑了styles.xml文件(/projectname/android/app/src/res/values/styles.xml)以包含以下内容:

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>
</resources>

此代码成功使应用程序全屏,删除Android状态栏。但是,如果我启动一个React Native'Modal'组件,模态只会延伸到顶部,就像状态栏的边缘一样,留下一个状态栏大小的间隙。如何修改模态以一直扩展到顶部?

以下是带有差距的开放式模式的屏幕截图:

Open modal with gap

2 个答案:

答案 0 :(得分:2)

您可以将 statusBarTranslucent={true} 应用到 React Native <Modal> 组件,如下例所示

<Modal statusBarTranslucent={true}>
//your modal content
<Modal />

知道了,statusBarTranslucent={true} 只适用于 android

答案 1 :(得分:0)

我曾尝试使用本机Android代码为单个组件隐藏StatusBar,但该组件在其他组件中可用,但是当我在模式中使用它时,它根本无法工作。

然后,我尝试删除模式视图,并使用react-navigation的StackNavigator导航到特定路径并使用BackHandler组件处理后退按钮。