在反应原生如何更改Android上的根视图背景颜色?
我已经在线阅读了几篇教程,但大部分关于iOS的讨论或Android的一些讨论,但使用旧版本的反应,现在一切都变了。在反应原生如何更改Android上的根视图背景颜色?
如果我打开MainActivity.java只有一种方法
@Override
protected String getMainComponentName() {
return "myapp";
}
,这意味着我无法访问rootview并改变其背景颜色,因为它似乎连onCreate方法是不提供给任何人现在。
我也试着打开RES /风格并加入我的台词有,但我不断收到错误
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@android:color/black</item>
</style>
我试过,但没有什么变化,仍出现相同的灰色背景。 希望我可以在做反应时做到这一点,但在那里添加背景不仅会增加不必要的透支,当加载时有一个背景有滞后,然后改变到另一个背景,非常难看。
您需要实现React样式来更改背景颜色。
以下我知道关于反应造型,我说现在不是我想要的解决方案,因为它绘制两个不同的背景,如果有动画或任何带来滞后的东西,根视图背景将会首先显示一秒钟后,我设置反应的背景。这是一个非常难看的经历 – user3564573
在android/app/src/main/res/values/
:
- 创建(或编辑)
colors.xml
添加你的背景颜色,例如:
<resources>
<color name="background">#AB47BC</color>
</resources>
- 在
styles.xml
,添加一个名为android:windowBackground
一个主题定制项目,引用所选颜色名称,例如:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@color/background</item>
</style>
</resources>
谢谢@ antoine129,这对我来说非常合适。 – Jordan
我创建了一个库,它允许您从JavaScript级别执行此操作,并且还允许您执行动态更改。
https://github.com/johniak/react-native-root-view-background
import { setRootViewBackgroundColor } from 'react-native-root-view-background';
export default class Main extends Component {
componentDidMount(){
setRootViewBackgroundColor('#ccc');
}
}
这种解决方案的缺点是被装载JS后颜色设置。
您是否找到解决方案? –
@MaximMcNair不幸的是我没有找到任何解决方案。 – user3564573
@MaximMcNair看到我的回答在 – antoine129