Android Night Mode without CarModeEnabled

2019-03-25 20:05发布

So I made separate xmls for night mode and kept them in layout-night.

Then I switch to night mode:

UiModeManager uiManager = (UiModeManager) getSystemService(Context.UI_MODE_SERVICE);
    if (nightMode) {
        uiManager.enableCarMode(0);
        uiManager.setNightMode(UiModeManager.MODE_NIGHT_YES);
    } else {
        uiManager.disableCarMode(0);
        uiManager.setNightMode(UiModeManager.MODE_NIGHT_NO);
    }

Is it possible to set night mode without enabling car mode?

or for that matter possible to use layout-night, values-night etc folders without using setNightMode()?

2条回答
戒情不戒烟
2楼-- · 2019-03-25 20:51

With 23.2.0(and higher) appcompat library it is possible with:

AppCompatDelegate.setDefaultNightMode

Here you will find example.

查看更多
Fickle 薄情
3楼-- · 2019-03-25 20:52

NO, According to docs setNightMode() "Changes to the night mode are only effective when the car or desk mode is enabled on a device."

http://developer.android.com/reference/android/app/UiModeManager.html#setNightMode(int)

Check : https://stackoverflow.com/a/23123791/28557

查看更多
登录 后发表回答