2016-02-21 9 views
8

Próbuję zrozumieć, jaka animacja jest używana w aplikacji Mapy Google.W jaki sposób układ serwisu Mapy Google jest animowany?

Część, którą próbuję zrozumieć, to kliknięcie pola tekstowego na pasku narzędzi. Układ animuje się, prezentując całkowicie nowy ekran z kilkoma elementami przesuwającymi się od dołu.

Jak to zrobić? Czy jest widoczny dolny arkusz? Czy jest to nowa aktywność z przejściami elementów wspólnych?

+1

Możliwa duplikat [przesuwnym układzie jak Mapy Google v7] (http://stackoverflow.com/questions/18236736/sliding-layout -like-google-maps-v7) –

+0

@ cricket_007 Nie dup. Efekt ten można wykonać dość łatwo przy użyciu dolnego arkusza lub przesuwnego panelu górnego. :) –

+0

Był to przesuwany panel przed lollipopem. –

Odpowiedz

2

Nazywa się to przejściami aktywności. Gdzie wybierasz, które układy powinny zostać przeniesione do drugiego działania. Zobacz także oficjalną dokumentację na temat animacji: http://developer.android.com/training/material/animations.html#Transitions

Kolejny dobry punkt do rozpoczęcia jej rozmowę wideo z Google Developers: https://www.youtube.com/watch?v=RhiPJByIMrM

Zasadniczo trzeba zmodyfikować styl jak tutaj:

<style name="BaseAppTheme" parent="android:Theme.Material"> 
    <!-- enable window content transitions --> 
    <item name="android:android:windowActivityTransitions">true</item> 

    <!-- specify enter and exit transitions --> 
    <item name="android:windowEnterTransition">@transition/explode</item> 
    <item name="android:windowExitTransition">@transition/explode</item> 

    <!-- specify shared element transitions --> 
    <item name="android:windowSharedElementEnterTransition"> 
    @transition/change_image_transform</item> 
    <item name="android:windowSharedElementExitTransition"> 
    @transition/change_image_transform</item> 
</style> 

You Musisz również określić specjalny atrybut o nazwie android:transitionName, aby powiedzieć system, który chcesz przenieść, z jednego działania do drugiego.

+0

AFAIK, przejścia aktywności są funkcją Lollipop. Czy są one dostępne w appcompat? :) –

+0

Nie jest to niemożliwe, ponieważ animacje są uruchamiane w innym wątku niż normalny interfejs użytkownika, jednak w tym szczególnym przypadku może on również działać, gdy tylko zamienisz fragmenty na animację. – rekire

+0

Okay, w aplikacji Mapy ta sama animacja jest wykonywana przed Lollipopem. Czy można zastosować animacje do układów w 'onCreate()', aby niektóre elementy przesuwały się od dołu? –

1

Jest to pojedyncze działanie, które ma 2 tryby: tryb mapy oraz tryb wprowadzania i listy. Możesz mieć FrameLayout i wewnątrz mieć główny widok mapy (widoczny) i wejściowy widok główny (nie ma). Gdy chcesz otworzyć listę, uczyń ją widoczną i użyj Animacji Animacji, aby ożywić ją. Lepszym rozwiązaniem jest przełamanie tych 2 głównych widoków na 2 fragmenty i animacja fragmentu.

Powiązane problemy