我在我的React Native项目中添加了一个飞溅屏幕,当我打开键盘时,一切都很好,它在其后面显示了飞溅式屏幕。视频 :https://drive.google.com/open?id=14ahrc-dyynneyaax3imqvwqqv6fvo_xg
重现
创建背景_splash.xml在其中使用此代码绘制:
<?xml version="1.0" encoding="utf-8" ?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/primary"/>
</layer-list>
然后在styles.xml文件中添加它
<item name="android:windowBackground">
@drawable/background_splash
</item>
预期行为
出现键盘时不应显示飞溅屏幕。
代码示例
所有内容都在复制选项卡中,您只需要添加一个文本输入才能显示。
环境
反应本地环境信息:系统:OS:Windows 10CPU:(4)X64 Intel(R)Xeon(R)CPU E5-1603 V4 @ 2.80GHz内存:9.57 GB/15.92 GB二进制:NPM:6.4.1 -C: Program Files nodejs npm.cmd
我的应用程序也有同样的问题,这是我的解决方法。首先,您必须安装模块反复背景颜色,该模块可以使您设置根活动的背景颜色。
在您的app.jsx中致电setColor
方法后(短暂的超时以避免使用钩子后立即避免"闪存")示例带有钩子:
export default function App(): Element {
useEffect(() => {
if (Platform.OS === "android") {
setTimeout(() => {
BackgroundColor.setColor("#FFFFFF");
}, 500);
}
}, []);
return <AppContainer />;
}
希望这个帮助!
编辑:通过Platform.OS
测试改进代码。
这些库( react-native-root-view-background
&amp; react-native-background-color
)可能对我不起作用,这可能是由于过时的,但是对我来说,用"react-native": "~0.63.4"
进行了完美的测试:
https://www.npmjs.com/package/reaect-native-native-root-view-background-color
import RootViewBackgroundColor from 'react-native-root-view-background-color';
// Set the Root View background color to black
RootViewBackgroundColor.setBackground(0, 0, 0, 1);
// Set the Root View background color to white
RootViewBackgroundColor.setBackground(255, 255, 255, 1);