переключение действий без анимации



как я могу правильно использовать флаг намерениях 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. Отключить анимацию также в случае возврата от второго действия к первому.

701   7  

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

    Ничего не найдено.