переключение действий без анимации
как я могу правильно использовать флаг намерениях FLAG_ACTIVITY_NO_ANIMATION в файле AndroidManifest? Я полагаю, моя проблема банальна, но я не могу найти хороший пример или решение.
<intent-filter>
<data android:name="android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION" />
</intent-filter>
однако комплиатор не сообщает об ошибке, но data не правильно.
Я просто хочу отключить анимацию в случае переключения между действиями. Я могу использовать getWindow().setWindowAnimations(0); в onCreate или onResume скорее, но использование флага-это лучший способ, не так ли?
Я могу использовать в коде:
Intent intent = new Intent(v.getContext(), newactivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
getContext().startActivity(intent);
но Я хочу использовать этот флаг в Манифесте Android. Отключить анимацию также в случае возврата от второго действия к первому.
7 ответов:
Вы можете создать стиль,
<style name="noAnimTheme" parent="android:Theme"> <item name="android:windowAnimationStyle">@null</item> </style>и установить его в качестве темы для вашей деятельности в манифест:
<activity android:name=".ui.ArticlesActivity" android:theme="@style/noAnimTheme"> </activity>вы также можете определить стиль, чтобы указать пользовательские анимации входа и выхода. http://developer.android.com/reference/android/R.attr.html#windowEnterAnimation
если ваш контекст-это действие, которое вы можете вызвать overridePendingTransition:
вызов сразу после одного из ароматов startActivity (намерение) или готово, чтобы указать явную анимацию перехода для выполнения далее.
Итак, программно:
this.startActivity(new Intent(v.getContext(), newactivity.class)); this.overridePendingTransition(0, 0);
попробуйте этот код
this.startActivity(new Intent(v.getContext(), newactivity.class).addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION));
вы также можете просто сделать это во всех действиях, которые вы не хотите переходить от:
@Override public void onPause() { super.onPause(); overridePendingTransition(0, 0); }Мне нравится этот подход, потому что вам не нужно возиться со стилем вашей деятельности.
это не пример использования или объяснение, как использовать
FLAG_ACTIVITY_NO_ANIMATION, однако он отвечает, Как отключитьActivityпереключение анимации, как задано в заголовке вопроса:Android, Как отключить эффект "wipe" при запуске новой деятельности?
вот однострочное решение, которое работает всего за
minSdkVersion 14который вы должны вставить в ВЫres/styles.xml:<item name="android:windowAnimationStyle">@null</item>вот так:
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> ... <item name="android:windowAnimationStyle">@null</item> </style> ... </resources>Ура!
создайте свой собственный стиль переопределения android: Theme
<style name="noAnimationStyle" parent="android:Theme"> <item name="android:windowAnimationStyle">@null</item> </style>затем используйте его в манифесте следующим образом:
<activity android:name=".MainActivity" android:theme="@style/noAnimationStyle"> </activity>
Comments