我一直在尝试找出我应该使用哪些回调,以确保所有开始活动的负载都已经完成,现在是启动我的动画的好时机视图。但是,我发现的只有一半是测量,并且并非总是有效的解决方案。Android不可能为这种基本需求提供解决方案。
- 我已经尝试了OnenteranimationComplete(),但这并未在某些三星设备(再次THNX Samsung)上进行调用
- 我已经尝试过onwindowfocuschanged()...动画被切成一半
- 我尝试在某些视图中添加一个globallayoutlistener ...同一件事
- 我已经尝试了onResume()...再次
- 我已经尝试了someview.post(new runnable(){....});没有运气
任何人都可以分享他们的见解吗?
尝试在系统执行View.draw(Canvas)
的呼叫之前立即调用的OnPreDrawListener
。
我已经使用了几次动画,我看到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.
}
}