Когда я пытаюсь вызвать AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
in oncreateview
во фрагменте не отображается содержимое фрагмента. но он хорошо работает в действиях
Класс помощника в ночном режиме
public class NightModeHelper {
private Context context;
public NightModeHelper(){}
public NightModeHelper(Context context){
this.context = context;
}
public void setDarkMode(Window window){
if(new NightModePreferenceManager(context).isNightMode()){
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
changeStatusBar(0,window);
}else{
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
changeStatusBar(1,window);
}
}
public void changeStatusBar(int mode, Window window){
if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.M){
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(context.getResources().getColor(R.color.contentBodyColor));
//white mode
if(mode==1){
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
}
}
}
вызов из действия oncreate работает хорошо
oNightModeHelper = new NightModeHelper(getApplicationContext());
oNightModeHelper.setDarkMode(getWindow());
Выше действия имеет ящик навигации из этого действия iнужно вызывать другие фрагменты.
В представлении этого фрагмента
oNightModeHelper = new NightModeHelper(getApplicationContext());
oNightModeHelper.setDarkMode(getActivity().getWindow());
, но не показывать содержимое фрагментов