我想在運行時設置我的活動的主題,選擇一個主題。我希望所選主題在啓動活動時立即顯示。setTheme的作品,但只有從清單加載主題後
在我的清單的<application>
部分中,我設置了一個默認主題android:theme="@style/AppTheme"
。然後在我的onCreate()
中,我使用setTheme(R.style.DarkAppTheme)
將主題設置爲用戶選定的主題(用所選主題替換DarkAppTheme
)。
並基於研究,似乎setTheme()
應該去onCreate()
之前和setContentView()
,我這樣做。
雖然這可以在用戶選擇的主題中顯示活動,但活動首先加載看起來像默認主題的東西,然後在短暫延遲後加載正確的主題。
如果我直接在清單中設置用戶選定的主題,那麼會立即按照我的意願加載,但當然這是硬編碼的,我想根據共享首選項動態更改它。
如何避免可見的轉換?我希望用戶選擇的主題從一開始就顯示出來。
謝謝。