La vidéo en plein écran joueur - mediacontroller derrière la barre de navigation

J'ai un problème avec mediacontroller qui est cachée derrière la barre de navigation (soft touches de navigation sur ICS). Au premier abord est OK (première image), mais quand c'est la barre de navigation cachée pour la première fois, mediacontroller est redimensionnée pour s'adapter à l'écran (correct), mais n'est pas redimensionnée en arrière quand la barre de navigation s'affiche à nouveau (deuxième image). Ad est déplacé derrière (caché pour la capture d'écran).

Si je comprends documentation correcte fitsSystemWindows devrait être responsable pour le redimensionnement. Mais cela ne fonctionne pas.

Comment puis-je le faire? Merci pour toute aide.

Je suis en essais présent sur le Galaxy Nexus.

XML mise en page:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/playerLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:animateLayoutChanges="true"
android:background="@color/black" >
<mynamespace.BKDVideoView
    android:id="@+id/videoview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"/>
<mynamespace.SubtitleTextView
    android:id="@+id/subtitleText"
    style="@style/SubtitleOverlayText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|center_horizontal"
    android:layout_marginBottom="30dp"
    android:gravity="center"
    android:visibility="gone"
    android:fitsSystemWindows="true"
    android:animateLayoutChanges="true"/>
<FrameLayout
    android:id="@+id/adLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="top|right"
    android:fitsSystemWindows="true"
    android:animateLayoutChanges="true"/>
<FrameLayout
    android:id="@+id/videoMediaControllerHolder"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:animateLayoutChanges="true"/>

BKDVideoView est la copie de GrepCode de VideoView avec quelques personnalisations. J'ai fait de même pour MediaController.
Dans MediaController je vais appeler cachent comme ça:

int newVis = SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | SYSTEM_UI_FLAG_LAYOUT_STABLE;
    if (!visible)
    {
        newVis |= SYSTEM_UI_FLAG_LOW_PROFILE | SYSTEM_UI_FLAG_FULLSCREEN | SYSTEM_UI_FLAG_HIDE_NAVIGATION;
    }

    //mSystemUiHolder -> FrameLayout (playerLayout)
    mSystemUiHolder.setSystemUiVisibility(newVis);

La vidéo en plein écran joueur - mediacontroller derrière la barre de navigation
La vidéo en plein écran joueur - mediacontroller derrière la barre de navigation

Mise à jour: Dans le cas où vous avez le même problème s'il vous plaît vérifier également le commentaire accepté de répondre. Pour les vues qui doit être en plein écran utiliser sammyboy code. Merci à tous les deux. Désolé, que j'ai besoin de trop de temps pour comprendre cela et je ne pouvais pas vous donner des points 🙁

Comment avez-vous préparé une vidéo de l'écran comme ci-dessus. pouvez-vous me guider pour construire un contrôleur de médias, comme ci-dessus.
Comme je l'ai dit ci-dessus, il est une coutume VideoView et MediaController. Alors j'ai un FrameLayout qui est transparent et plein écran et contient deux autres points de vue, en haut et en bas qui ont une taille fixe et sont placés en haut (layout_gravity=en haut) et en bas. Rien de spécial 🙂
vous pouvez poster votre code source. il sera très utile pour moi.
Bas contrôles: pastie.org/private/t2p0xkppk34ipl3in4888q
comment avez-vous gérer la bascule de l'écran.

OriginalL'auteur zoki | 2012-11-05