我将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