How can one know if an activity is started without a transition?

前端 未结 2 1020
走了就别回头了
走了就别回头了 2021-02-12 19:39

I have a use case where I mostly start an activity with a transition, but that\'s not the case when opening it from the navigation drawer.

To keep the transition smooth

2条回答
  •  说谎
    说谎 (楼主)
    2021-02-12 20:32

    You can try onTransitionStart of TransitionListener to set some boolean isAnimationStarted.

    public class SomeActivity extends Activity {
    
        private boolean isAnimationStarted = false;
    
        public void onCreate(Bundle savedInstanceState) { 
            // ...
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
                Transition sharedElementEnterTransition = getWindow().getSharedElementEnterTransition();
                sharedElementEnterTransition.addListener(new Transition.TransitionListener() {
                    // ...
                    @Override
                    public void onTransitionEnd(Transition transition) {
                        doSomeUiUpdating();
                    }
    
                    @Override
                    public void onTransitionStarted(Transition transition) {
                        isAnimationStarted = true;
                    }
                });
            }
        }
    
        public void onStart() {
            if (!isAnimationStarted) {
                doSomeUiUpdating();
            }
        }
    
    }
    

提交回复
热议问题