片段 - 等到事务动画完成

时间:2016-07-14 17:47:25

标签: android android-fragments android-animation

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

我用它来启动新片段

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%后初始化

这可能吗?

1 个答案:

答案 0 :(得分:0)

这里有两种方法,

  1. 在幻灯片动画中实现AnimationListener。

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

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