2017-09-05 97 views
0

我有一個主題,但可以拒絕設置android:windowBackgorund和android:colorBackground。 其餘代碼正常工作,如果我切換默認主題中的項目,它可以正常工作。Android黑暗主題不設置窗口背景

styles.xml:

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="android:navigationBarColor">@color/colorPrimary</item> 
    <item name="android:radioButtonStyle">@style/radioLight</item> 
</style> 

<style name="Dark" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="android:navigationBarColor">@color/colorPrimary</item> 
    <item name="android:windowBackground">@color/grey</item> 
    <item name="android:colorBackground">@color/grey</item> 
    <item name="android:textColor">@color/white</item> 
    <item name="android:textColorHint">@color/soft_grey</item> 
    <item name="android:radioButtonStyle">@style/radioDark</item> 
</style> 

主營:

setTheme(R.style.Dark); 

不知道也沒用 activity_main XML:

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingTop="@dimen/appbar_padding_top" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     android:scrollbars="none" 
     app:popupTheme="@style/AppTheme.PopupOverlay"> 

    </android.support.v7.widget.Toolbar> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="35dp" /> 

</android.support.design.widget.AppBarLayout> 

什麼是可恥的錯誤我犯了?

回答

1

android:windowBackground只接受drawable。嘗試將其更改爲類似

<item name="android:windowBackground">@drawable/abc</item> 

,並創建一個文件abc.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
    <solid android:color="@color/grey"/> 
</shape> 

而只是檢查,你打電話super.onCreate()之前調用setTheme?

+0

問題是我在super.onCreate()函數和@drawable之前調用set主題。非常感謝! – Racerider