2010-07-20 26 views
39

डिफ़ॉल्ट एनीमेशन जब Back बटन दबाया जाता है तो बाएं से दाएं स्लाइड होती है। मैं इसे एक कस्टम एनीमेशन के साथ बदलना चाहता हूं। मैं वर्तमान में सोच रहा हूं कि onBackPressed() और overridePendingTransition का कुछ संयोजन चाल करेगा, लेकिन मैं इसे काम नहीं कर पा रहा हूं।कस्टम बैक बटन एनीमेशन

+0

कुछ नमूना कोड को शामिल करें, अन्यथा हम पता नहीं आप गलत क्या कर किया जा सकता है है। – prestomation

उत्तर

111

मुझे लगता है कि आप खत्म() क्योंकि डेटा से दृश्य संग्रहीत मिट जाएगा

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit); 
} 
+1

यह सही है। – dfetter88

+9

सुपर का ध्यान रखें, इसे इसके बाद होने की आवश्यकता है, अन्यथा कोई प्रभाव नहीं। –

+2

@ क्रिस.जेनकींस यदि आप कह रहे हैं कि 'ओवरराइडपेन्डिंग..' 'सुपर' के बाद होना चाहिए, तो हाँ। यह किसी भी परिष्करण कॉल के बाद होना चाहिए। सुपर मूल रूप से 'फिनिश' कहते हैं। इसलिए 'ओवरराइड' इस मामले में 'फिनिश' या 'सुपर' के बाद होना चाहिए। – Niranjan

5

यह पता लगाया। मैं वर्तमान गतिविधि को खत्म नहीं कर रहा था। निम्नलिखित कोड चाल करता है।

@Override 
public void onBackPressed() { 
    [This Activity].this.finish(); 
    overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 
} 
+8

super.onBackPressed() स्वचालित रूप से समाप्त कॉल करता है। मैन्युअल रूप से कॉल करने के बजाय इसका उपयोग करें .. –

0

मैं onBackPressed() का उपयोग नहीं करता क्योंकि यह एक हैक है जब हम टुकड़ों का उपयोग करते हैं और हमें स्टैक को संभालने की आवश्यकता होती है, उदाहरण के लिए। मैं एक और अधिक सुरुचिपूर्ण समाधान यहाँ प्रस्तावित:

https://stackoverflow.com/a/43725255/689723

संबंधित मुद्दे