在Android中重新打开淡入和淡出动画的活动

时间:2017-02-16 18:29:07

标签: android android-layout android-activity android-animation

我有什么

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

我做了什么

1)我尝试过recreate()活动,但这并不适用任何动画。

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

<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>

我已经在我的活动中应用了这种风格。

我使用

重新打开活动
Intent intent = new Intent(getActivity(), SettingsThemeActivity.class);
getActivity().startActivity(intent);
getActivity().finish();

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

BUG

由于我已将窗口动画应用于活动本身,每当我打开和关闭活动时,动画都会触发,这不是我想要的。我希望动画只在我更改主题并调用上面的代码行重新打开活动时才能工作。

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

1 个答案:

答案 0 :(得分:2)

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