如何使用constraintlayout动画新意图

时间:2018-07-18 17:14:05

标签: android android-layout android-constraintlayout

我开始使用ConstraintLayout。我创建了一些不错的动画。所以我有2个xml布局-开始和结束。我想在开始新活动时启动它。如何做到最好?

简而言之,当我不得不输入以下代码时:

            TransitionManager.beginDelayedTransition(_layout, transition);
            _set2.applyTo(_layout);

我将尝试将其放入onCreate(...)和onResume(...)方法中,但是当我开始新活动(通过Intnet)时,仅显示了最终布局-没有任何动画。

其唯一的工作方式是:

@Override
protected void onCreate() {
    ...
    animate();
}

public void animate(){

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            ChangeBounds transition = new ChangeBounds();
            transition .setInterpolator(new OvershootInterpolator());
            transition .setDuration(1000);
            TransitionManager.beginDelayedTransition(_layout, transition);
            _set2.applyTo(_layout);


        }
    }, 500);
}

但是我不确定这是最好的方法

1 个答案:

答案 0 :(得分:0)

Activity获得焦点后即可开始动画。尝试像这样使用onWindowFocusChanged

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    if(hasFocus) {
        ChangeBounds transition = new ChangeBounds();
        transition.setInterpolator(new OvershootInterpolator());
        transition.setDuration(1000);
        TransitionManager.beginDelayedTransition(_layout, transition);
        _set2.applyTo(_layout);
    }
}