我有一个带有动画的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);
答案 0 :(得分:2)
浏览此链接ActivityLifeCycle
这只是因为我假设你在onCreate()上编写了代码;当你开始活动时,它只调用onCreate()一次,当你切换你的活动然后回来时,你的状态被改为onResume(),所以你的动画代码停止工作。
您需要在onResume()
方法中编写代码,该方法会在您启动活动时调用,也可以在您重新开始活动时调用。
当活动第一次加载时,会调用事件,如下所示:
onCreate()
onStart()
onResume()
切换活动时
onPause()
返回活动时
onResume()
注意:要注意的一件事是,当配置发生更改时,也会调用onResume()。将代码放在onResume()中将导致在旋转设备时再次播放动画。 您可能希望避免这种情况,具体取决于您的要求。
答案 1 :(得分:0)
根据您的说明,我假设您将上面的代码放入活动的onCreate()
方法中。请尝试将其放入onResume()
,每次恢复活动时都会调用(导航回到,在您的情况下),而不是onCreate()
。