在React Native中平滑启动画面过渡

时间:2019-12-30 07:35:29

标签: android react-native

我将react-native-splashscreen用于我的本机Android应用程序。初始屏幕显示。
同时,我需要react-native-restart才能根据语言更改重新启动应用。

react-native-restart将不会显示初始屏幕。 因此,它将在重启(在高端设备上)时显示1-2秒的空白屏幕

现在,我可以通过设置windowBackground来解决它,如下所示以模仿启动屏幕。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ... 
    <item name="android:windowBackground">@layout/launch_screen_bg</item>
    ...
</style>

但是接着出现另一个问题,在显示键盘过渡期间,显示windowBackground。在中高性能设备上这不是问题,但是在低性能设备上,很明显windowBackground闪烁并显示出来(人眼可以看到大约0.5秒的键盘转换)

===============================
也许我使用的方法错误。

因为在低端设备中,我必须设置android:windowBackground,否则在首次渲染组件之前,启动屏幕之后,仍然有3-5秒的白屏。 当然,我可以在这里使用setTimeout()来解决它,但这是hackish,也不能用于react-native-restart

componentDidMount() {
    ...
    Splashscreen.hide()
}

总结一下:
1)我有一个低端设备,在启动屏幕加载完成后和应用js加载之前,将导致清晰的白屏。
2)在解决此问题时设置背景图像将导致键盘显示过渡显示初始屏幕(情况并非如此,此处背景应为透明)
3)react-native restart也会在应用加载之前导致白屏几秒钟(我认为这只能通过android:windowBackground来解决。由于我试图在App.js中设置背景,因此无法正常工作。

那么在这种情况下如何获得平滑的启动画面过渡?我从一开始就使用错误的方法吗?

规则: android:windowSoftInputMode必须为adjustResize

0 个答案:

没有答案