我在白天/晚上的时候遇到了一个问题:从片段改变模式,如果不重新创建父活动,模式就不会改变,但是我想从片段中改变模式,而不从当前片段中移动。
public void setNightMode(Context target, boolean state){
//UiModeManager uiManager = (UiModeManager) target.getSystemService(Context.UI_MODE_SERVICE);
UiModeManager uiManager = (UiModeManager) getActivity().getSystemService(Context.UI_MODE_SERVICE);
if (state) {
//setTheme(R.style.DarkTheme);
if (android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.M){
//setting up Night Mode...
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
} else {
uiManager.setNightMode(UiModeManager.MODE_NIGHT_YES);
}
//uiManager.setNightMode(UiModeManager.MODE_NIGHT_YES);
night_mode = false;
//homeBinding.toolbar.setHeaderColour(HomeActivity.this, false);
} else {
if (android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.M){
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
} else {
uiManager.setNightMode(UiModeManager.MODE_NIGHT_NO);
}
night_mode = true;
}
}
发布于 2022-02-10 19:02:01
更改为夜间模式:
delegate.localNightMode = AppCompatDelegate.MODE_NIGHT_YES
并转换为光模式:
delegate.localNightMode = AppCompatDelegate.MODE_NIGHT_NO
此外,为了使用此特性,您必须实现androidX appcompat库。
implementation 'androidx.appcompat:appcompat:1.4.0'
https://stackoverflow.com/questions/71068279
复制相似问题