当onBackPressed()

问题描述:

我有一个GridView动画的重新启动动画。当我们启动activityanimation工作时,如果我们转到其他活动,那么我需要动画以与启动时相同的方式重新启动。现在当按下“后退”按钮时,它将转到上一个活动,但上述GridView没有动画。下面是代码:当onBackPressed()

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); 
+0

在活动的onResume()中执行此操作。 – SripadRaj

从你的描述,我认为你把上面的代码到你的活动onCreate()方法。尝试将它放入onResume(),而不是每次活动恢复时调用(导航返回,在您的情况下),而不是onCreate()

通过这个链接ActivityLifeCycle

这仅仅是因为我假设你写上的onCreate代码();当你开始活动时,它只会在您切换活动并返回时调用onCreate(),您的状态将更改为onResume(),以便动画代码停止工作。

您需要编写代码onResume()当您启动活动并且每当您回到活动时都会调用该方法。

当活动首次加载事件作为下面称为:

onCreate() 
onStart() 
onResume() 

开关活性

onPause() 

活性

onResume() 

注意:有一点需要注意的是,onresume()在配置更改发生时也会被调用。将代码放入onResume()将使您在旋转设备时再次播放动画。 根据您的要求,您可能需要避免这种情况。