Начать новое действие без анимации перехода в Android 1.6 - PullRequest
29 голосов
/ 16 декабря 2010

Мне известно, что с уровня API 5 можно указать флаг в намерении, чтобы предотвратить применение обычной анимации при запуске нового действия:

myIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);

Однако мой вопрос:Есть ли способ добиться того же в приложении, поддерживающем Android 1.6?

Ответы [ 5 ]

51 голосов
/ 29 февраля 2012

В более новых версиях вы хотите переопределить переход на 0,0 вскоре после запуска операции:

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

Я пробовал это на 2.1 и 4.0.3, у меня это сработало. =)

Я нашел это в документах здесь

20 голосов
/ 16 декабря 2010

Используйте это: getWindow().setWindowAnimations(0); в пределах Activity, который начинается.

6 голосов
/ 19 сентября 2012

У меня это решение сработало (Android 2.2):

Intent intent = new Intent(getContext(), YourClass.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
getContext().startActivity(intent);
5 голосов
/ 23 июля 2014

К вашему сведению, я нахожусь на 4.4.2, и это единственное, что я нашел, что работает:

Чтобы предотвратить открытие анимации: в onCreate () запускающего действия добавьте overridePendingTransition (0,0).

Чтобы предотвратить закрытие анимации: после окончания (), немедленно вызовите overridePendingTransition (0,0).

Они НЕ работают (по крайней мере, не в моей сборке 4.4.2): (1) вызов getWindow (). SetWindowAnimations (0) в onCreate () (передача ненулевого числа работает, но это ужасный хак, так как он ожидает resId), и (2) вызов overridePendingTransition (0,0) сразу после startActivity () - анимация все еще присутствует.

0 голосов
/ 18 июля 2014

поместите ниже код на создание деятельности:

getWindow().setWindowAnimations(0);
...