2010-12-16 3 views

Odpowiedz

20

Użyj tego: getWindow().setWindowAnimations(0); w ciągu Activity, który się zaczyna.

+0

Dzięki, gdzie powinna iść ta linia, w działalności, którą rozpoczynam, czy w tej, z której ją rozpoczynam? –

+0

wydaje się, że nie działa na 2.2: S –

+0

wydaje się, że nie działa na 2.3also – pengwang

51

W nowszych wersjach, chcesz zastąpić przejście z 0,0 wkrótce po rozpoczęciu działalności:

Intent i = new Intent(this, YourNewActivity.class); 
startActivity(i); 
overridePendingTransition(0,0); 

Próbowałem to na 2.1 i 4.0.3, pracował dla mnie. =)

Znalazłem go w docs here

6

To rozwiązanie pracował dla mnie (Android 2.2):

Intent intent = new Intent(getContext(), YourClass.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
getContext().startActivity(intent); 
+2

Dlaczego jest to odrzucone? Wygląda to na dobre rozwiązanie ... – JJJollyjim

+0

To działało dla mnie na 4.0.3 - nie wiem, dlaczego jest przegłosowane ... Być może dlatego, że pytanie o coś na Androida 1.6? – infl3x

+0

Powoduje przejście w tryb odwrotny w wersji 2.3.5 – swebal

0

umieszczone poniżej kod na onCreate działalności:

getWindow().setWindowAnimations(0); 
+2

Dlaczego publikujesz odpowiedź, która już istnieje? – Bevor

5

FYI , Jestem na 4.4.2 i to są jedyne rzeczy, które znalazłem, które działają:

Aby zapobiec animacji otwierania: w działaniu onCreate(), należy dodać overridePendingTransition (0,0).

Aby zapobiec zakończeniu animacji: po zakończeniu(), natychmiast wywołaj funkcję overridePendingTransition (0,0).

Te NIE działają (przynajmniej nie na mojej wersji 4.4.2): (1) wywołanie getWindow(). SetWindowAnimations (0) w onCreate() (podanie niezerowej liczby działa, ale to jest brzydki hack, ponieważ oczekuje resId), i (2) wywołanie overridePendingTransition (0,0) natychmiast po uruchomieniu startActivity() - animacja jest nadal obecna.