У меня есть действие, которое запускает другое действие нажатием кнопки. По умолчанию в более новых версиях ОС Android ОС будет анимировать новое действие, скользящее справа налево.
Есть ли способ отключить эту анимацию? Я просто хочу, чтобы новое действие появилось без какой-либо анимации.
FLAG_ACTIVITY_NO_ANIMATION
иoverridePendingTransition
являются только API уровня 5+.ИМХО этот ответ здесь решает проблему самым элегантным способом ..
Разработчик должен создать стиль ,
<style name="noAnimTheme" parent="android:Theme"> <item name="android:windowAnimationStyle">@null</item> </style>
затем в манифесте установите его как тему для активности или всего приложения.
<activity android:name=".ui.ArticlesActivity" android:theme="@style/noAnimTheme"> </activity>
Вуаля! Легко и приятно..
PS кредиты оригинальному автору, пожалуйста
источник
Применять
startActivity(new Intent(FirstActivity.this,SecondActivity.class));
тогда
overridePendingTransition(0, 0);
Это остановит анимацию.
источник
На мой взгляд, лучший ответ - использовать
"overridePendingTransition(0, 0);"
чтобы не видеть анимацию , если вы хотите
Intent
кActivity
использованию:this.startActivity(new Intent(v.getContext(), newactivity.class)); this.overridePendingTransition(0, 0);
и не видеть анимацию при нажатии кнопки возврата.
onPause
Метод переопределения в вашемnewactivity
@Override protected void onPause() { super.onPause(); overridePendingTransition(0, 0); }
источник
Просто укажите
Intent.FLAG_ACTIVITY_NO_ANIMATION
флаг при запускеисточник
Это работает для меня при отключении анимации завершения активности.
@Override protected void onPause() { super.onPause(); overridePendingTransition(0, 0); }
источник
Я использую 4.4.2, и вызов overridePendingTransition (0, 0) в действии запуска onCreate () отключит начальную анимацию (вызов overridePendingTransition (0, 0) сразу после startActivity () НЕ работал). Как отмечено в другом ответе, вызов overridePendingTransition (0, 0) после finish () отключает анимацию закрытия.
Кстати, я обнаружил, что установка стиля с помощью "android: windowAnimationStyle"> @ null (другой ответ, упомянутый здесь) вызвала сбой, когда мое действие запуска попыталось установить заголовок панели действий. Продолжая отладку, я обнаружил, что это каким-то образом приводит к сбою window.hasFeature (Window.FEATURE_ACTION_BAR) в initActionBar () Activity.
источник
FLAG_ACTIVITY_NO_ANIMATION может работать, но не помогал мне в сочетании с FLAG_ACTIVITY_CLEAR_TASK и FLAG_ACTIVITY_NEW_TASK. Я, по-видимому, вижу анимацию создания новой задачи со свежим стеком действий, когда я перехожу к другим своим представлениям верхнего уровня.
Здесь работал вызов overridePendingTransition (0, 0); либо сразу после моего вызова startActivity (), либо onPause (). Оба способа работали, но выполнение их после startActivity () дает мне немного больше контроля над тем, когда мне нужна анимация, а когда нет.
источник
У меня была аналогичная проблема с появлением черного экрана при скользящем переходе от одного действия к другому с использованием
overridependingtransition
. и я пошел по пути ниже, и это сработало1) создал
noanim.xml
в папке аним<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="@android:integer/config_longAnimTime" android:fromYDelta="0%p" android:toYDelta="0%p" />
и использовал
overridePendingTransition(R.drawable.lefttorightanim, R.anim.noanim);
Первый параметр в качестве моей исходной анимации и второй параметр, который является анимацией выхода в качестве фиктивной анимации.
источник
Для того , чтобы избежать черного фона при запуске активности уже в стеке, я добавил
overridePendingTransition(0,0)
вonStart()
:@Override protected void onStart() { overridePendingTransition(0,0); super.onStart(); }
источник