Android ładowanie activity w tle

0

Cześć

Mam taką specyficzną sytuację, na pewnym ekranie po kliknięciu w przycisk wyświetla się DialogFragment na całą szerokość okna, z półprzezroczystym tłem. W tym dialogu znajduje się dużo przycisków, po kliknięciu jednego z przycisku uruchamiają się pewne animacje i startuje następne activity. Chaciałbym zmienić to aby, po kliknięciu przycisku, w "tle" startowało następne activity natomiast na dialog window kończyła się animacja. Po zakończeniu animacji, dany dialog się zamyka i pojawia się nam nowa aktywność.
Można coś takiego zrobić w androidzie ??

0

Możesz podpiąć do animacji listener OnAnimationListener i wykorzystać callback OnAnimationEnd, w którym wystartujesz activity.

0
dbCooper napisał(a):

Możesz podpiąć do animacji listener OnAnimationListener i wykorzystać callback OnAnimationEnd, w którym wystartujesz activity.

No i tak mam teraz :))
Nie zrozumiałeś mnie ja chcę wystartować nowe activity w metodzie onAnimatonStart. Chcę uzystać efekt ładowania nowej aktywności w tle. Ja wywołuje nową aktywność z transparentnego full screen dialog fragmentu. Kiedy kliknę na jeden z przycisków to wtedy na tym dialog fragmencie idą jeszcze animacje a nowa aktywność ma się pokazywać w tym samym czasie w tle. Takie mam wymagania, że tak ma to wyglądać :))

0

Jeśli Cie dobrze rozumiem to chcesz umieścic nową aktywność w miejscu tej z której wywołałeś DialogFragment ? Chyba się tak nie da. Może zamiast startować nową aktywność, umieść cały content we fragmencie i podczas trwania animacji podmień fragment na docelowy.

0
bolson napisał(a):

Jeśli Cie dobrze rozumiem to chcesz umieścic nową aktywność w miejscu tej z której wywołałeś DialogFragment ? Chyba się tak nie da. Może zamiast startować nową aktywność, umieść cały content we fragmencie i podczas trwania animacji podmień fragment na docelowy.

Nie chcę ją umieszczać w miejsce aktywności z której wywołałem dialog fragment. Chcę po prostu aby dialog fragment się wyświetlał aż animacje się nie skończą.

Teraz mam taki flow:
1) "Activity 1" posiada przycisk, po kliknięciu w niego pokazuje się na całym ekranie dialog fragment z przezroczystym tłem (dzięki temu widzimy gui pod spodem :) )
2) Na tym dialogu jest 10 przycisków, każdy z nich jest odpowiedzialny za startowanie innego activity.
3) Po kliknięciu na któryś z tych 10 przycisków, wykonuje się pewna animacja, a gdy ona się skończy (onAnimationEnd) startuje się nowa aktywność a dialog idzie dismiss();

Chcę mieć flow:
1) "Activity 1" posiada przycisk, po kliknięciu w niego pokazuje się na całym ekranie dialog fragment z przezroczystym tłem (dzięki temu widzimy gui pod spodem :) )
2) Na tym dialogu jest 10 przycisków, każdy z nich jest odpowiedzialny za startowanie innego activity.
3) Po kliknięciu na któryś z tych 10 przycisków, w tym samym czasie (onAnimationStart) w tle (bo mamy przezroczysty dialog) widzimy jak ładuje się nowa aktywność, a na tym dialogu trwają animacje
jak animacje się skończą to dialog idzie dismiss() i naszym oczom ujawia się nowa aktywność 2, jeśli klikniemy przycisk wstecz to wracamy do "Activity 1"

Kolega na IOS coś takiego zaimplementował, więc raczej wątpię, że nie da się tego zrobić na Androidzie :P

0

Czyli tak jak napisałem ;) DialogFragment zawsze wyświetla się nad aktywnością z której został wywołany. Startując nową aktywność tworzy się nowe okno, zatem poprzednie okno (z poprzednią aktywnością i dialog fragmentem) zostanie z automatu przykryte. To co napisałeś najprościej osiągnąć podmieniając fragment IMO.

0
bolson napisał(a):

Czyli tak jak napisałem ;) DialogFragment zawsze wyświetla się nad aktywnością z której został wywołany. Startując nową aktywność tworzy się nowe okno, zatem poprzednie okno (z poprzednią aktywnością i dialog fragmentem) zostanie z automatu przykryte. To co napisałeś najprościej osiągnąć podmieniając fragment IMO.

Rozumiem Cię jednak problematyka jest taka, że
1) ten dialog fragment moze być wywoływany w kilkunastu miejscach w aplikacji,
2) dialog odpala "skomplikowane" activity, w którym jest kilka fragmentów. przeniesienie tej całej logiki do (patrch pkt 1) nie byłoby dobrym rozwiązaniem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0