2017-07-19 95 views
1

我已經在線閱讀了幾篇教程,但大部分關於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> 

我試過,但沒有什麼變化,仍出現相同的灰色背景。 希望我可以在做反應時做到這一點,但在那裏添加背景不僅會增加不必要的透支,當加載時有一個背景有滯後,然後改變到另一個背景,非常難看。

+0

您是否找到解決方案? –

+0

@MaximMcNair不幸的是我沒有找到任何解決方案。 – user3564573

+0

@MaximMcNair看到我的回答在 – antoine129

回答

-2

您需要實現React樣式來更改背景顏色。

+1

以下我知道關於反應造型,我說現在不是我想要的解決方案,因爲它繪製兩個不同的背景,如果有動畫或任何帶來滯後的東西,根視圖背景將會首先顯示一秒鐘後,我設置反應的背景。這是一個非常難看的經歷 – user3564573

4

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> 
+1

謝謝@ antoine129,這對我來說非常合適。 – Jordan

1

我創建了一個庫,它允許您從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後顏色設置。

相關問題