当前位置: 代码迷 >> Android >> 在Android中使用淡入和淡出动画重新打开活动
  详细解决方案

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

热度:76   发布时间:2023-08-04 12:19:42.0

我有的

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

我尝试过的

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();

动画效果确实很好,但是存在问题。

错误

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

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

在startActivity()之后尝试! 调用overridePendingTransition(R.anim.fade_in,R.anim.fade_out);

  相关解决方案