我使用的是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 ActionBar
- 3. AppCompat主題
- 4. Holo主題爲AppCompat庫
- 5. Android appCompat主題vs基本主題
- 6. Android Wear DayNight主題程序兼容性
- 7. 使用主題AppCompat Light更新操作欄樣式
- 8. AppCompat的全屏主題
- 9. 更改AppCompat Light的背景和文本顏色Light DarlActionBar主題android
- 10. DatePickerDialog與主題Holo Light?
- 11. 與AppCompat主題問題的Android DialogFragment
- 12. 果園1.6自定義主題始終顯示日期
- 13. bbPress - 論壇不顯示主題,而主題顯示論壇
- 14. Emacs24主題終端
- 15. RapidWeaver主題爲Drupal6主題
- 16. AppCompat主題不適用於TextView android:autoLink =「phone」
- 17. 什麼是android中的AppCompat主題?
- 18. Android Studio錯誤「AppCompat不支持主題」
- 19. 以編程方式膨脹AppCompat主題
- 20. Android AppCompat-v7透明Actionbar 21主題
- 21. CustomNavigationLayout for Appcompat主題通過樣式
- 22. Django:import主題issue,word主題顯示而不是標題?
- 23. WordPress主題安裝主題/顯示問題
- 24. PHP:顯示與主題列
- 25. 不要顯示wordpress主題
- 26. Opencart主題不顯示
- 27. Windows Phone 7.1 Light/Dark主題管理
- 28. Mybb顯示所有主題爲今天
- 29. Liferay JSF主題顯示問題
- 30. Telerik Winforms主題標題欄不顯示
我相信這是正確的回答:http://stackoverflow.com/a/35701225/859190 – mariotaku