在 Android 中使用淡入淡出动画重新打开 Activity

Reopen Activity with Fade In and Fade Out Animation in Android

我有什么

我有一个支持动态主题的应用程序。一切都很好,但现在在更改主题时我想给它一个淡入和淡出效果,使主题更改过渡看起来无缝。

我尝试了什么

1) 我已尝试 recreate() activity,但没有应用任何动画。

2) 我添加了一个window动画,像这样,

<style name="WindowFadeTransition">
        <item name="android:windowAnimationStyle">@style/WindowAnimationTransition</item>
    </style>

    <style name="WindowAnimationTransition">
        <item name="android:windowEnterAnimation">@android:anim/fade_in</item>
        <item name="android:windowExitAnimation">@android:anim/fade_out</item>
    </style>

而且我已经在 activity 中应用了样式。

我重新打开 activity 使用

Intent intent = new Intent(getActivity(), SettingsThemeActivity.class);
getActivity().startActivity(intent);
getActivity().finish();

动画效果很好,但有问题。

错误

因为我已经将 window 动画应用到 activity 本身,每当我打开和关闭 activity 时,动画就会触发,这不是我想要的。我希望动画仅在我更改主题并调用上面的代码行重新打开 activity.

时起作用

我知道这有点棘手。如何解决这个问题?有什么想法吗?

在 startActivity() 之后试试这个;致电 overridePendingTransition(R.anim.fade_in,R.anim.fade_out);