fitSystemWindows par programmation pour la barre d'état de la transparence

Mon application a une activité qui héberge différents fragments pour chaque section. J'ai récemment fait la barre d'état translucide par la mise en fitSystemWindows à true, qui a mis de la couleur d'arrière-plan de l'application. C'est très bien pour les fragments qui ont une barre d'outils, où les couleurs correspondent, comme suit:

fitSystemWindows par programmation pour la barre d'état de la transparence

Cependant, l'un de mes fragments a une photo et un translucides de la barre d'outil, donc j'aimerais avoir la photo d'occuper l'espace de la barre d'état, plutôt que de la couleur d'arrière-plan.

Je crois que la solution est de mettre en fitSystemWindows à false pour ce fragment seulement, et l'ajouter manuellement un rembourrage pour le translucide barre d'outils. En faisant par programme ne semble pas avoir d'effet, que pouvais-je fait de mal?

Ici est mon activité principale mise en page:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_parent_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:fitsSystemWindows="true">

<!-- Container for various fragment layouts, including nav drawer and tool bar -->

</RelativeLayout>

Et de l'intérieur de mon fragment de la onCreateView():

RelativeLayout daddyLayout = (RelativeLayout)getActivity().findViewById(R.id.main_parent_view);
daddyLayout.setFitsSystemWindows(false);
daddyLayout.invalidate();

Cela ne semble avoir aucun effet, comme suit:

fitSystemWindows par programmation pour la barre d'état de la transparence

Si j'ai mis fitSystemWindows à false dans le main_parent_view, la barre d'état rembourrage est parti et il fonctionne, mais évidemment affecte chaque fragment.

double possible de Android 4.4 — Translucide statut/barres de navigation — fitsSystemWindows/clipToPadding ne pas travailler à travers fragment de transactions
Que l'utilisateur du problème, c'est que fitSystemWindows() est réinitialisé après un fragment de transaction se produit, alors que mon problème est que je semble incapable de toggle fitSystemWindows() par programmation. Encore assez similaire, mais aucune de ces réponses ont aidé, très étrange et gênant...
Avez-vous trouvez une solution pour ce problème?
Wow c'était il y a longtemps 🙂 j'ai vraiment suggèrent de regarder github.com/jgilfelt/SystemBarTint - bien qu'obsolète maintenant, il a fait beaucoup de ce genre de choses "juste travail" pour moi je pense

OriginalL'auteur Daniel Wilson | 2015-02-07