2014-04-23 6 views
5

कहा जाता है, मैं Activity के टुकड़े को जोड़ रहा हूं (FrameLayout पर कई टुकड़े) प्रत्येक खंड का अपना दृश्य onCreateView() में बढ़ा हुआ है।पर टुकड़ा क्रिएटिव्यू को कई बार

अब,

अगर मैं स्क्रीन लैंडस्केप बारी बारी/Protrait टुकड़ा की onCreateView() बजाय अपने जुड़ी गतिविधि के onCreate() विधि बुलाने की कहा जाता है। इस वजह से दृश्य दो बार प्रस्तुत किया जाता है।

मैं चाहता हूं कि गतिविधि के onCreate() को कॉन्फ़िगरेशन परिवर्तन होने पर हर बार बुलाया जाए। क्या यह संभव है?

गतिविधि:MainActivity.java

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    getSupportFragmentManager().beginTransaction() 
     .add(R.id.layout_replace, new MyFragment()).commit(); 
} 

टुकड़ा:MyFragment.java

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {   
    return (ScrollView)inflater.inflate(R.layout.some_layout, container, false); 
} 
+0

जब आप घुमाने के लिए, 'Activity' नष्ट कर दिया और शुरू कर दिया है। यदि एक 'टुकड़ा' संलग्न है, तो'CreateView() 'पर कॉल किया जाएगा। क्या आप अपने कोड का एक हिस्सा दिखा सकते हैं? –

+0

@FlorianMacLanglade मैंने अपना नमूना कोड – yashhy

+0

अपडेट किया है क्या आपको विभाजन को गतिशील रूप से जोड़ा जाना चाहिए? यदि नहीं, तो आप सीधे अपने लेआउट xml में खंड घोषित कर सकते हैं। – sddamico

उत्तर

17

इस फिक्स्ड !!

वास्तविक समस्या FragmentTransaction के साथ थी जिसके लिए मैं .add() का उपयोग करके टुकड़े जोड़ रहा हूं जिससे दृश्य दो बार पॉप्युलेट हो जाता है।

इसके बजाय का उपयोग करें:

.replace(R.id.yourId, fragment)

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