14

Ich implementiere das Material Design bottom sheet Entwurfsmuster in meiner App mit einer benutzerdefinierten Unterklasse von Dialog. Der Dialog mit dem unteren Rande des Bildschirms gravitierte und verwendet ein y-Übersetzungsfenster Animation eingeben:Fensteranimation überlappt Navigationsleiste auf Android 5.0

<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:interpolator="@android:interpolator/decelerate_cubic"> 
    <translate android:fromYDelta="100%" 
     android:toYDelta="0" 
     android:duration="250" /> 
</set> 

Bei früheren Versionen von Android, das sieht toll (wenn ich das so sagen): Der Dialog glatt gleitet in von der untere Teil des Bildschirms und von unter die Navigationsleiste.

Auf der neuesten 5.0 Vorschau-Bild, Fensteranimationen passieren jedoch oben der Navigationsleiste, so dass die Dialoginhalte vorübergehend die Navigation überlappen. Mit diesem speziellen Anwendungsfall sieht es hässlich, komisch und störend aus.

Gibt es etwas, das ich in meinem Thema oder Code einstellen kann, um dies zu verhindern?

+0

Mit welchem ​​Code starten Sie die Animation? Wie ist Ihre benutzerdefinierte Dialog-Unterklasse implementiert? –

+0

Bitte zeigen Sie Ihre Haupt-XML-Datei, wo alle Ihre Ansichten existieren. –

+0

Die Fensteranimation wird über die angegebene XML-Schemaressource des Dialogfelds festgelegt. – Veeti

Antwort

-3

aus der Android-Entwickler-Website:

In dieser Version stellt Android einen neuen Toolbar-Widget. Dies ist eine Verallgemeinerung des Aktionsleistenmusters, das Ihnen viel mehr Kontrolle und Flexibilität gibt. Die Werkzeugleiste ist eine Ansicht in Ihrer Hierarchie, genau wie jede andere auch, was es einfacher macht, sich mit den anderen Ansichten zu verzahnen, sie zu animieren und auf Bildlaufereignisse zu reagieren. Sie können sie auch als Aktionsleiste Ihrer Aktivität festlegen, dh, dass die Standardoptionen im Menü angezeigt werden.

Also die Aktionsleiste ist jetzt eine Ansicht in Ihrem Layout, deshalb geht das Popup darüber hinweg. Ich weiß auch, dass sie einige Z-Index-Eigenschaften eingeführt haben, könnte es für Sie hilfreich sein.

+1

Ich spreche nicht über die Aktionsleiste, sondern die Gerät Navigationsleiste (zurück, nach Hause, recents). – Veeti

3

Verwenden Sie einfach <item name="android:windowDrawsSystemBarBackgrounds">false</item> für die Aktivität, wo Sie Ihren Dialog zeigen. In diesem Fall befindet sich Ihr Dialog während der Animation in der Navigationsleiste.

+3

Es behebt das Problem, aber Statusleiste ist nicht transparent, wenn Sie über Flag verwenden. –

+0

Danke für diese Antwort! Du hast meinen Tag gerettet ;) –