【问题标题】:Reopen Activity with Fade In and Fade Out Animation in Android在 Android 中使用淡入和淡出动画重新打开 Activity
【发布时间】:2017-02-16 18:29:06
【问题描述】:

我有什么

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

我尝试了什么

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);
  • 这将如何帮助顺便说一句?当它打开和关闭时,我已经在 Activity 上有滑动动画。所以,不能使用 overridePendingTransition()。
  • 您是说只有在调用activaty时才需要动画!您是否尝试删除 @android:anim/fade_out
  • 真的吗?您仔细阅读问题了吗?
  • 这就是你所说的---> 因为我已经将窗口动画应用到了活动本身,所以每当我打开和关闭活动时,动画都会触发,//你说它会同时触发活动打开和关闭//这不是我想要的。我希望动画仅在我更改主题并调用上述代码行以重新打开活动时才起作用。 //你说当你重新打开活动时

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


【解决方案1】:

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

【讨论】:

  • 实际的解决方案是为此使用 overridePendingTransactions。
  • 看我一开始就告诉你了!不用担心!我已经编辑了答案!检查一下
猜你喜欢
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
  • 2011-10-11
  • 2011-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多