Mam czynność, która uruchamia inną czynność po kliknięciu przycisku. Domyślnie w nowszych wersjach systemu operacyjnego Android system operacyjny będzie animował nową aktywność przesuwając się od prawej do lewej.
Czy istnieje sposób na wyłączenie tej animacji? Chcę tylko, aby nowe działanie pojawiło się bez jakiejkolwiek animacji.
FLAG_ACTIVITY_NO_ANIMATION
ioverridePendingTransition
to zarówno na poziomie API 5+ tylko.IMHO ta odpowiedź tutaj rozwiązuje problem w najbardziej elegancki sposób.
Deweloper powinien stworzyć styl ,
następnie w manifeście ustaw go jako temat działania lub całej aplikacji.
Voila! Miło i łatwo ...
ps kredyty dla oryginalnego autora ...
źródło
Zastosować
następnie
Spowoduje to zatrzymanie animacji.
źródło
Moim zdaniem najlepszą odpowiedzią jest użycie
"overridePendingTransition(0, 0);"
aby uniknąć wyświetlania animacji, gdy chcesz
Intent
doActivity
wykorzystania:i nie widzieć animacji po naciśnięciu przycisku Wstecz
onPause
Metoda Zastąp w plikunewactivity
źródło
Po prostu określ
Intent.FLAG_ACTIVITY_NO_ANIMATION
flagę podczas uruchamianiaźródło
To działa w przypadku wyłączania animacji zakończenia działania.
źródło
Jestem na 4.4.2 i wywołanie overridePendingTransition (0, 0) w działaniu uruchamiającym onCreate () wyłączy animację początkową (wywołanie overridePendingTransition (0, 0) natychmiast po startActivity () NIE zadziałało). Jak zauważono w innej odpowiedzi, wywołanie overridePendingTransition (0, 0) po finish () wyłącza animację zamykającą.
Przy okazji stwierdziłem, że ustawienie stylu za pomocą „android: windowAnimationStyle”> @ null (inna odpowiedź wymieniona tutaj) spowodowało awarię, gdy moja aktywność uruchamiania próbowała ustawić tytuł paska akcji. Dalsze debugowanie, odkryłem, że w jakiś sposób powoduje to niepowodzenie window.hasFeature (Window.FEATURE_ACTION_BAR) w initActionBar () działania.
źródło
FLAG_ACTIVITY_NO_ANIMATION może działać, ale nie załatwiło mi tego w połączeniu z FLAG_ACTIVITY_CLEAR_TASK i FLAG_ACTIVITY_NEW_TASK. Najwyraźniej widzę animację tworzenia nowego zadania ze świeżym stosem działań, gdy przechodzę w bok do moich innych widoków najwyższego poziomu.
To, co tutaj zadziałało, to wywołanie "overridePendingTransition (0, 0);" bezpośrednio po wywołaniu funkcji startActivity () lub onPause (). Oba sposoby działały, ale zrobienie tego po startActivity () daje mi trochę większą kontrolę nad tym, kiedy chcę animacje, a kiedy nie.
źródło
Miałem podobny problem z wyświetlaniem czarnego ekranu podczas przesuwania przejścia z jednej czynności do drugiej za pomocą
overridependingtransition
. i poszedłem zgodnie z instrukcją poniżej i zadziałało1) utworzył
noanim.xml
folder w animi używane
Pierwszy parametr jako moja oryginalna animacja i drugi parametr, który jest animacją wyjścia jako moja sztuczna animacja
źródło
W celu uniknięcia czarne tło, gdy zaczyna działalność już w stosie, dodałem
overridePendingTransition(0,0)
wonStart()
:źródło