14

Sto implementando il modello di progettazione del materiale bottom sheet nella mia app utilizzando una sottoclasse personalizzata di Dialog. La finestra di dialogo è gravitava nella parte inferiore dello schermo e utilizza una finestra y-traduzione entrare animazione:L'animazione della finestra si sovrappone alla barra di navigazione su 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> 

Nelle versioni precedenti di Android, questo sembra grande (se lo dico io): la finestra di dialogo scorre senza problemi in da la parte inferiore dello schermo e da sotto la barra di navigazione.

Tuttavia, nell'ultima immagine di anteprima 5.0, le animazioni delle finestre si verificano su superiore della barra di spostamento, pertanto i contenuti della finestra di dialogo si sovrappongono temporaneamente alla navigazione. Con questo particolare caso d'uso sembra brutto, strano e distraente.

C'è qualcosa che posso impostare nel mio tema o codice per impedirlo?

+0

Qual è il codice che si sta utilizzando per avviare l'animazione? Come viene implementata la sottoclasse Dialog personalizzata? –

+0

Mostrare il file XML principale in cui sono presenti tutte le visualizzazioni. –

+0

L'animazione della finestra viene impostata tramite la risorsa tema XML specificata dalla finestra di dialogo. – Veeti

risposta

-3

Dal sito Android Developers:

In questa versione, Android introduce un nuovo widget Toolbar. Questa è una generalizzazione del pattern di Action Bar che ti offre molto più controllo e flessibilità. La barra degli strumenti è una visualizzazione nella gerarchia come qualsiasi altra, rendendo più semplice l'interleave con il resto delle visualizzazioni, l'animazione e la reazione per scorrere gli eventi. Puoi anche impostarlo come barra delle azioni della tua attività, il che significa che le azioni del menu opzioni standard verranno visualizzate al suo interno.

Quindi la barra delle azioni ora è una vista nel layout, ecco perché il popup lo supera. So anche che hanno introdotto alcune proprietà z-index, potrebbe essere utile per te.

+1

Non sto parlando della barra delle azioni, ma della barra di navigazione del dispositivo (indietro, home, a ritroso). – Veeti

3

Basta usare <item name="android:windowDrawsSystemBarBackgrounds">false</item> per le attività in cui viene visualizzata la finestra di dialogo. In questo caso la finestra di dialogo si troverà sotto la barra di navigazione durante l'animazione.

+3

Risolve il problema, tuttavia la barra di stato non è traslucida quando si usa il flag sopra. –

+0

Grazie per questa risposta! Mi hai salvato la giornata;) –

Problemi correlati