如何在Android应用程序(React Native)上消除白色闪烁

时间:2019-03-20 08:22:52

标签: reactjs react-native splash-screen

我一直在寻找关于我的问题的答案,但是当您更换屏幕时,仍然无法理解如何消除白色闪烁。我有一个黑色主题的应用程序,所以很烦人。

我已经尝试用 View 组件包装我的应用程序,并将 backgroundColor 设置为深色,但这无济于事。

我发现了几篇文章,其中描述了一些可能的选项,例如在 RCTRootView 中进行更改等,但是我找不到在哪里进行更改...

以下是我已阅读的几个链接:

https://github.com/facebook/react-native/issues/1402 \

https://github.com/wix/react-native-navigation/issues/358

我还找到了 react-native-splash-screen ,并想今天尝试一下,但首先我决定问大家,是否存在其他方法?

EDIT

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowDisablePreview">true</item>
    <!-- Customize your theme here. -->
</style>

1 个答案:

答案 0 :(得分:0)

事实是,react-native加载Javascript时显示白色屏幕。因此,您无法使用javascript屏幕对其进行修复,因为它尚未加载,并且由于白色屏幕是由react native视图引起的,因此您无法使用本机android代码轻松对其进行修复。

如果只想更改背景颜色,则可以编辑(或创建)res/values/colors.xml文件以包括background颜色:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="background">#FF0000</color>
</resources>

然后您可以在android:windowBackground内设置styles.xml

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->

        <item name="android:windowBackground">@color/background</item>
    </style>

</resources>

如果您想要一个更复杂的加载屏幕,则确实需要将react-native-splash-screen与自定义布局一起使用(否则需要在自定义模块中复制其行为)