问题描述
我对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: 149292152146204-23 04:25:21.464 3680-3680/? D/TestFragment: onCreateView: 149292152146404-23 04:25:21.466 3680-3680/? D/TestFragment: onViewCreated: 149292152146604-23 04:25:21.466 3680-3680/? D/TestFragment: onActivityCreated: 149292152146604-23 04:25:21.466 3680-3680/? D/TestFragment: onStart: 149292152146604-23 04:25:21.466 3680-3680/? D/TestFragment: onResume: 1492921521466
问题解答
回答1:postDelayed 500ms 再执行网络请求
回答2:能监听动画就监听动画,不能监听动画就postDelayed。
回答3:给动画设置监听,当动画完成时执行网络请求
回答4:醉了。你听说过生命周期吗?
回答5:试试在OnActivityCreate()或者OnStart()方法中进行网络请求
回答6:既然无法监听Fragment动画结束,我们可以换个思路,给动画添加listener,在onEnd方法中再将进度条设为可见