Fragment 使用了过场动画,如何确保某个方法是过场动画完毕后执行呢?

我对fragment 设置了一个500ms的过场动画,然后在onViewCreate中进行了网络请求,在请求网络开始时,我会显示一个进度条,但是因为这个时候过场动画还未完成,导致了进度条先于界面被展示了
如何确保我的请求网络的方法是在过场动画执行完毕后执行的呢?(不使用sleep)

04-23 04:25:21.455 3680-3680/? D/Main6Activity: click: 
04-23 04:25:21.462 3680-3680/? D/TestFragment: onAttach: 1492921521462
04-23 04:25:21.464 3680-3680/? D/TestFragment: onCreateView: 1492921521464
04-23 04:25:21.466 3680-3680/? D/TestFragment: onViewCreated: 1492921521466
04-23 04:25:21.466 3680-3680/? D/TestFragment: onActivityCreated: 1492921521466
04-23 04:25:21.466 3680-3680/? D/TestFragment: onStart: 1492921521466
04-23 04:25:21.466 3680-3680/? D/TestFragment: onResume: 1492921521466
阅读 6.3k
7 个回答

postDelayed 500ms 再执行网络请求

能监听动画就监听动画,不能监听动画就postDelayed。

给动画设置监听,当动画完成时执行网络请求

醉了。你听说过生命周期吗?

试试在OnActivityCreate()或者OnStart()方法中进行网络请求

既然无法监听Fragment动画结束,我们可以换个思路,给动画添加listener,在onEnd方法中再将进度条设为可见

新手上路,请多包涵

老哥 你找到解决的办法了么

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题