ActionBar, die YouTubePlayerSupportFragment von der YouTube Player-API überlagert

Ich habe eine Aktivität verlängertAppCompatActivity, unter Verwendung eines Themas, das @ erweiteTheme.AppCompat.Light.DarkActionBar. Die Ansicht dieser Aktivität ist einLinearLayout mit einerVERTICAL Orientierung mit folgenden Ansichten:

A FrameLayout mit einemYouTubePlayerSupportFragment. Beachten Sie, dass ich die folgenden Methoden für das erhaltene @ aufruYouTubePlayer bei erfolgreicher Initialisierung:

setPlayerStyle(PlayerStyle.CHROMELESS)
addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_CUSTOM_LAYOUT)

Ich setze auch einonClickListener in der Player-Ansicht, soll das @ verstecken und anzeigActionBar auf Nachfrage

Eine andere Ansicht mit Videodetails und anderen Dingen

Einige Ansicht von unten

Beachten Sie, dass die Aktivität @ aufrusupportRequestWindowFeature(WindowCompat.FEATURE_ACTION_BAR_OVERLAY) und dass dasLinearLayout hat eine obere Polsterung vonandroid.support.v7.appcompat.R.attr.actionBarSize.

In demAndroidManifest.xml, die Aktivität hatandroid:configChanges="orientation|screenSize" einstellen

In der Aktivität istonConfigurationChanged -Methode, ich überprüfe die Bildschirmausrichtung. Wenn es sich um ein Querformat handelt, werde ich "Vollbild", wenn es sich um ein Hochformat handelt, kehre ich zum normalen Layout zurück.

Mit "Vollbild" meine ich:

Einstellung von Ansicht Nr. 2 und Ansicht Nr. 3visibility zuView.GONEEinstellung der AktivitätsupportActionBar Hintergrundfarbe zu einer transparenten Farbe wie0x55000000EinstellunggetWindow().getDecorView().systemUiVisibility zuView.SYSTEM_UI_FLAG_FULLSCREENÄndern der Ansicht Nr. 1LayoutParams, setzt beidewidth undheight zuMATCH_PARENTCallingsetFullscreen(true) auf derYouTubePlayer

Jetzt, wenn ich in meiner App bin, funktioniert alles im Hochformat: Das Video wird abgespielt, der Player befindet sich korrekterweise direkt unter demActionBar. Es funktioniert weiterhin wie erwartet, wenn Sie in den Querformatmodus wechseln: Alles außer dem Player wird ausgeblendet (sogar dasActionBar). Dann klicke ich auf den jetzt im Vollbildmodus verfügbaren YouTube-Player.

Das erwartete Ergebnis wäre, dass dieActionBar wird angezeigt, ohne die Wiedergabe zu unterbrechen.

Das tatsächliche Ergebnis ist, dass sowohl die Systemstatusleiste als auch die Aktionsleiste angezeigt werden und die Wiedergabe mit dem folgenden Fehler unterbrochen wird:

YouTube Die Videowiedergabe wurde aufgrund eines nicht autorisierten Overlays auf dem Player gestoppt. Die YouTubePlayerView wird von android.support.v7.widget.ActionBarContainer {43744840 V.ED .... ........ 0,50-1280,162 # 7f0d005b app: id / action_bar_container} verdeckt. Die Ansicht befindet sich im YouTubePlayerView, wobei der Abstand in Pixel zwischen den Rändern der verdeckten Ansicht und der YouTubePlayerView wie folgt ist: links: 0, oben: 50, rechts: 0, unten: 558 ..

Der YouTubePlayer soll von einer ActionBar überlagert werden (siehe @Overlay ActionBar Demo im @ gefundAnwendungsbeispiele. Also, was ist das Problem hier? Ich dachte, es wurde nur nach der Ansicht gesucht, in der es sich um eine ActionBar handelt, oder nicht, also verstehe ich nicht, wie genau dieser Fehler überhaupt möglich ist!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage