साझा तत्व संक्रमण को आसानी से चलाने के लिए, मुझे अपनी गंतव्य गतिविधि में भारी प्रारंभिक स्थगित करने की आवश्यकता है। नीचे दिए गए कोड देखें:हम कैसे जान सकते हैं कि गतिविधि साझा तत्व संक्रमण चल रहा है?
getWindow().setSharedElementEnterTransition(enterTransition);
enterTransition.addListener(new Transition.TransitionListener() {
@Override
public void onTransitionEnd(Transition transition) {
init();
}
});
हालांकि, अगर यह गतिविधि या किसी अन्य गतिविधि उस तत्व साझा नहीं किए हैं Deep link
से शुरू कर दिया है। संक्रमण कभी शुरू नहीं होता है, इस प्रकार onTransitionEnd()
कभी नहीं कहा जाता है और init()
कभी नहीं चलाएगा। उस स्थिति में, गतिविधि शुरू होने के तुरंत बाद मुझे init()
पर कॉल करना चाहिए।
मुझे कैसे पता चलेगा कि संक्रमण चल रहा है?
संपादित मैं भी अगर साझा तत्व संक्रमण उपलब्ध नहीं है एक और संक्रमण में प्रवेश चलाना चाहते हैं। तो नीचे दिए गए उत्तर दें कि postponeEnterTransition()
का उपयोग करने का सुझाव मेरे मामले के लिए काम नहीं करता है।