我使用的是version 23.2中引入的AppCompat的新Theme.AppCompat.DayNight主題,但不是自動在一天(淺色)和夜晚(深色)主題之間切換,而是始終顯示爲淺色主題。我如何才能切換到黑暗的主題?AppCompat DayNight主題始終顯示爲Light主題?
回答
默認情況下,無論是「空中飛人」將匹配系統值(從UiModeManager.getNightMode())
然而,截至目前,這實際上意味着它相當於作爲觸發夜間模式的唯一的東西是薑餅時代的汽車碼頭。
這意味着,在目前的設備,只有這樣,才能看到一個黑暗的主題使用DayNight主題時使用NIGHT_MODE_YES或NIGHT_MODE_AUTO
由於在這兩個官爵和Chris Banes' post on DayNight說,你可以改變模式在全球一級或地方一級。
全局級別依賴於靜態的AppCompatDelegate.setDefaultNightMode()
方法,該方法在整個應用程序中設置DayNight模式。由於這隻適用於您的進程處於活動狀態時(即它只是一個內存標誌),所以您需要確保在每次啓動應用程序時都設置它。從克里斯後做一個推薦的方法是將其設置爲自定義應用程序類的靜態方法:
static {
AppCompatDelegate.setDefaultNightMode(
AppCompatDelegate.MODE_NIGHT_...);
}
public class MyApplication extends Application {
相反,如果你只是想改變模式,單個活動/對話框,您可以改爲調用getDelegate().setLocalNightMode()
:
public class MyActivity extends AppCompatActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
// Set the local night mode to some value
getDelegate().setLocalNightMode(
AppCompatDelegate.MODE_NIGHT_...);
// Now recreate for it to take effect
recreate();
}
}
}
這改變僅僅是單個實例 - 你會注意到在調用recreate()
- 已經被膨脹不會在夜間模式變化的影響意見,這樣你就可以強制重新創建自己以獲取更新值的活動。
當然,克里斯後還指出
還記得,默認爲MODE_NIGHT_FOLLOW_SYSTEM,所以如果我們在將來增加一個用戶可見的設置到平臺,程序兼容性會自動使用它。
要在白天或晚上更改其他屬性,請查看[本答案](http://stackoverflow.com/a/35629740/1676363),其中解釋如何使用'night'和'notnight'資源文件夾秒。 – ianhanniballake
似乎是在運行Android Lollipop的錯誤與程序兼容性23.2.0:Google Issue Tracker
下面的代碼不只是工作前棒棒堂:
public class MyApplication extends Application {
static {
AppCompatDelegate.setDefaultNightMode(
AppCompatDelegate.MODE_NIGHT_YES);
}
[...]
}
- 1. DayNight主題總是顯示夜景主題
- 2. AppCompat主題
- 3. Android Wear DayNight主題程序兼容性
- 4. 更改AppCompat Light的背景和文本顏色Light DarlActionBar主題android
- 5. DatePickerDialog與主題Holo Light?
- 6. Emacs24主題終端
- 7. 以編程方式膨脹AppCompat主題
- 8. Android AppCompat-v7透明Actionbar 21主題
- 9. RapidWeaver主題爲Drupal6主題
- 10. Django:import主題issue,word主題顯示而不是標題?
- 11. WordPress主題安裝主題/顯示問題
- 12. 不要顯示wordpress主題
- 13. Opencart主題不顯示
- 14. Windows Phone 7.1 Light/Dark主題管理
- 15. Liferay JSF主題顯示問題
- 16. Telerik Winforms主題標題欄不顯示
- 17. 需要顯示主題(郵件主題) - vtigerCRM的
- 18. 在Rails中顯示屬於一個主題標籤的主題
- 19. Eclipse Color主題:「顏色主題」沒有顯示
- 20. 根據應用主題(暗/主題)顯示圖像
- 21. 主題顯示在編碼格式在發送長主題
- 22. 提示爲WordPress主題
- 23. 爲什麼我的WordPress在主頁上顯示主題文檔?
- 24. fabricjs 1.6.3:爲什麼主動對象始終顯示在頂部
- 25. 帶有錯誤標題欄的AppCompat對話框主題 - 錯誤?
- 26. 在AppCompat主題中設置標題顏色
- 27. 爲Windows主題創建UI主題
- 28. 如何顯示在主題終極版框架選項
- 29. Rx主題與GoF主題
- 30. 按主題組織主題
我相信這是正確的回答:http://stackoverflow.com/a/35701225/859190 – mariotaku