onBackPressed()重启上一个活动的动画

时间:2017-08-01 12:51:25

标签: android android-activity android-animation android-gridview

我有一个带有动画的GridView。当我们启动activity animation时,如果我们转到另一个活动,我需要动画再次重新启动,就像它启动时一样。现在,当按下“返回”按钮时,它将转到上一个活动,但上述GridView没有动画。这是代码:

CustomGrid adapter = new CustomGrid(Grids.this, web, imageId);
grid = (GridView) findViewById(R.id.grid);
grid.setAdapter(adapter);
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.grid_item_anim);
controller = new GridLayoutAnimationController(animation, .2f, .2f);
grid.setLayoutAnimation(controller);

2 个答案:

答案 0 :(得分:2)

浏览此链接ActivityLifeCycle

这只是因为我假设你在onCreate()上编写了代码;当你开始活动时,它只调用onCreate()一次,当你切换你的活动然后回来时,你的状态被改为onResume(),所以你的动画代码停止工作。

您需要在onResume()方法中编写代码,该方法会在您启动活动时调用,也可以在您重新开始活动时调用。

当活动第一次加载时,会调用事件,如下所示:

onCreate()
onStart()
onResume()

切换活动时

onPause()

返回活动时

onResume()

注意:要注意的一件事是,当配置发生更改时,也会调用onResume()。将代码放在onResume()中将导致在旋转设备时再次播放动画。 您可能希望避免这种情况,具体取决于您的要求。

答案 1 :(得分:0)

根据您的说明,我假设您将上面的代码放入活动的onCreate()方法中。请尝试将其放入onResume(),每次恢复活动时都会调用(导航回到,在您的情况下),而不是onCreate()