Android 片段-等待事务动画完成

Android 片段-等待事务动画完成,android,android-fragments,android-animation,Android,Android Fragments,Android Animation,我使用一个简单的幻灯片左,右自定义动画时,我执行碎片事务。我的问题是,我正在加载的带有事务动画的片段在onResume()中包含进行HTTP调用的代码,该调用会导致“请等待”进度对话框显示。它可以工作,但我希望将代码从onResume移动到片段中的另一个方法,直到片段完全加载后才会触发。换句话说,当动画完成并完全滑入到位时 我用这个来开始新的片段 FragmentManager manager = getSupportFragmentManager(); FragmentTransaction

我使用一个简单的幻灯片左,右自定义动画时,我执行碎片事务。我的问题是,我正在加载的带有事务动画的片段在onResume()中包含进行HTTP调用的代码,该调用会导致“请等待”进度对话框显示。它可以工作,但我希望将代码从onResume移动到片段中的另一个方法,直到片段完全加载后才会触发。换句话说,当动画完成并完全滑入到位时

我用这个来开始新的片段

FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.setCustomAnimation(R.anim.slide_in_right, R.anim.slide_out_left);
ft.replace(R.id.realtabcontent, new MyFragment());
ft.commit();
我希望MyNewFragment()中的方法在动画100%完成后初始化


这可能吗?

这里有两种可能的方法

  • 在动画中的幻灯片上实现AnimationListener

    animation.setAnimationListener(new Animation.AnimationListener() {
                @Override
                public void onAnimationStart(Animation animation) {
    
                }
    
                @Override
                public void onAnimationEnd(Animation animation) {
    
                }
    
                @Override
                public void onAnimationRepeat(Animation animation) {
    
                }
            });
    
  • 在侦听器的onAnimationEnd()中,调用片段中的方法进行HTTP调用

  • 上述方法只是为了动画而浪费时间。因此,不要使用进度对话框,而是在片段中实现一个循环进度条。这样,动画和http调用可以同时进行。获得响应后,移除进度微调器并显示实际的片段视图

  • 我使用的是基于XML的动画,如何添加动画侦听器?@Phil你找到解决问题的方法了吗?@Tony-刚要接受你的答案是正确的,你删除了它碎片动画的最佳解释在这里()。但是,我会针对您的特定问题推荐我的答案中的第二种方法,因为这将是更好的用户体验。