2014-04-11 7 views
5

मैं सिर्फ पता लगा लिया है कि हर बार जब मैं setRetainInstance (सही) एक टुकड़ा यह उम्मीद के रूप में काम करता है पर (टुकड़ा डेटा को बनाए रखा है) के बाद टुकड़ा कस्टम एनिमेशन से बचने, लेकिन यह करने के लिए टुकड़ा के कस्टम एनिमेशन खड़ी कर रहा है स्क्रीन रोटेशन के बाद फिर से निष्पादित किया जाना चाहिए।को निष्क्रिय कैसे करें/स्क्रीन रोटेशन

वहाँ एक रास्ता बचने/स्क्रीन रोटेशन पर उन एनिमेशन निष्क्रिय करने के लिए है?

टुकड़ा निम्नलिखित एनिमेशन का उपयोग कर बनाई गई है:

setCustomAnimations (R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right);

तो, मैं नहीं चाहता कि उन "रपट एनिमेशन" स्क्रीन रोटेशन पर फिर से क्रियान्वित किया जा करना चाहते हैं।

उत्तर

10

यह मैं इसे कैसे

private boolean viewsHaveBeenDestroyed; 

@Override 
public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) { 
    // This stops animation on rotation as we have a retained instance. 
    boolean shouldNotAnimate = enter && viewsHaveBeenDestroyed; 
    viewsHaveBeenDestroyed = false; 
    return shouldNotAnimate ? AnimationUtils.loadAnimation(getActivity(), R.anim.none) 
      : super.onCreateAnimation(transit, enter, nextAnim); 
} 

@Override 
public void onDestroyView() { 
    super.onDestroyView(); 
    viewsHaveBeenDestroyed = true; 
} 

संभाला कहाँ R.anim.none सिर्फ एक एनीमेशन है कि कुछ नहीं करता है। सौभाग्य।

+0

क्या R.anim.none में निर्दिष्ट करने के लिए? – Dory

+0

मैं एक एक्सएमएल अल्फा एनीमेशन है कि एक के एक अल्फा से एक की एक अल्फा को जाता है का उपयोग करें। – MinceMan

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