Тема вызывает скрытие содержимого фрагмента - PullRequest
0 голосов
/ 30 сентября 2019

Когда я пытаюсь вызвать 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());

, но не показывать содержимое фрагментов

...