2011-07-30 8 views
14

Używam fragmentów Androida. Chcę osiągnąć poniższy efekt.Upadek w dół Przesuwanie fragmentu Androida Przejście

Mam 2 szczegóły detali i główny korpus. Po kliknięciu przycisku chcę, aby panel szczegółów zsunął się i wysunął część głównego korpusu.

Panel szczegółów nie jest zadeklarowany w układzie xml działania. Jest on dodawany dynamicznie. Również panel szczegółów może zostać odrzucony, gdy użytkownik skończy.

Znalazłem przykład dokładnie tego, co chcę zrobić. Aplikacja Gmail w strukturze plastra miodu robi to, gdy masz ją w trybie portretu na Xoom. Przejdź całą drogę do wiadomości e-mail, tak aby zajęła cały ekran. Naciśnij przycisk Wstecz i zwróć uwagę na tace treści wiadomości e-mail z prawej strony, aby zrobić miejsce na listę wiadomości e-mail.

Before and after of the activity.

Odpowiedz

2

Najlepszym podejściem, jakie obecnie postrzegane i zastosowania (z widokiem ale powinien działać na fragmenty, jak również) jest następujący: http://udinic.wordpress.com/2011/09/03/expanding-listview-items/

Zasadniczo on tworzy widok z marginesem ujemnym a potem animuje margines do żądanej wartości. To w zasadzie właściwie przekształca widok zamiast zwykłej prostej animacji. Pracuję nad własną implementacją, która wykorzystuje wysokość zamiast marginesu.

Jestem BARDZO zainteresowany lepszym podejściem. Ten dostaje zadanie, ale nie podoba mi się sposób, w jaki jej zrobić :)

Edit: Zrobiłem to w następujący sposób: https://stackoverflow.com/a/9290723/969325

to jest dla widoki, ale mogłyby być użyte do również fragmenty.

0

Czy sprawdziłeś, czy korzystasz z LayoutTransition?

http://developer.android.com/reference/android/animation/LayoutTransition.html

Domyślna LayoutTransition (gdy utworzona i włączona) będą widoki dziecko auto ślizgowe kiedy nowe widoki są dodawane lub usuwane z układu nadrzędnego.

theLayoutView.setLayoutTransition(new LayoutTransition()); 
+0

Zgaduję, że skompresowałoby to niższy fragment, zamiast zachować jego wysokość i przesunąć go w dół? –

Powiązane problemy