Android - установить прозрачный статусбар - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь создать приложение.Единственный фрагмент приложения имеет прозрачную панель инструментов и строку состояния.

Я должен эта задача программно.Я пишу код ниже, чтобы организовать прозрачность строки состояния:

void translucentStatusBar(Activity activity) {
    Window window = activity.getWindow();
    int flags = window.getDecorView().getSystemUiVisibility();
    flags |= WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
    flags |= WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
    window.addFlags(flags);

    // ID_ANDROID_CONTENT = The ID that the main layout in the XML layout file should have.
    ViewGroup mContentView = window.findViewById(Window.ID_ANDROID_CONTENT);
    View mChildView = mContentView.getChildAt(0);
    if (mChildView != null) {
        mChildView.setFitsSystemWindows(false);
        ViewCompat.requestApplyInsets(mChildView);
    }
}

void revertTranslucentStatusBar(Activity activity) {
    Window window = activity.getWindow();
    int flags = window.getDecorView().getSystemUiVisibility();
    flags &= ~WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
    flags &= ~WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;

    window.clearFlags(flags);
    // ID_ANDROID_CONTENT = The ID that the main layout in the XML layout file should have.
    ViewGroup mContentView = window.findViewById(Window.ID_ANDROID_CONTENT);
    View mChildView = mContentView.getChildAt(0);
    if (mChildView != null) {
        mChildView.setFitsSystemWindows(true);
        ViewCompat.requestApplyInsets(mChildView);
    }
    if(Build.VERSION.SDK_INT >= 21)
        window.setStatusBarColor(Color.YELLOW);
}

Fragment1 onViewCreated вызывает функцию translucentStatusBar, следующая страница - Fragment2.Fragment1 в порядке.

И onViewCreated для Fragment2 вызывает функцию revertTranslucentStatusBar.

Fragment1 enter image description here

Fragment2 enter image description here

Это не ЖЕЛТЫЙ!Как организовать прозрачность строки состояния на основе фрагментов?

...