Android - 在活动加载完成后立即开始查看动画

时间:2016-12-11 19:56:52

标签: android android-activity android-animation

我一直试图找出我应该使用什么回调,以便绝对确定所有开始活动的加载已经完成,现在是开始我的视图动画的好时机。然而,我发现的只有半措施,并不总是有效的解决方案。 Android无法为此基本需求提供解决方案。

  • 我已经尝试过onEnterAnimationComplete(),但这并没有在某些三星设备上调用(thnx再次是三星)
  • 我试过onWindowFocusChanged()......动画减少了一半
  • 我尝试将globalLayoutListener添加到某个视图中......同样的事情
  • 我已经尝试过onResume()......同样的事情
  • 我尝试过someView.post(new Runnable(){....});没有运气

有人可以分享他们的见解吗?

1 个答案:

答案 0 :(得分:0)

在系统执行OnPreDrawListener上的调用之前,尝试View.draw(Canvas)立即调用。

我已经使用了几次动画,我看到Chet Haase在Q& A上多次提出建议。

public void MyAct extends AppCompatActivity implements OnPreDrawListener {

  @Override 
  public void onCreate(SavedInstanceState state) {
     super.onCreate(state);
     init all your stuff...

     if(state == null) {
        rootView.getViewTreeObserver().addOnPreDrawListener(this);
     }
  }

  @Override
  public void onPreDraw() {
     // remove the listener, you don't want to get called anymore
     rootView.getViewTreeObserver().removeOnPreDrawListener(this);

     do your thing here ...

     return true; // if you return false, it will cancel the draw operation.
  }
}