2016-05-06 4 views
5

कुख्यात onGlobalLayoutListener() समाधान का उपयोग किए बिना, और कस्टम व्यू को लागू किए बिना, फ्रैगमेंट में कौन सा जीवन चक्र घटना मैं कोड डाल सकता हूं और सुनिश्चित कर सकता हूं कि सभी टुकड़े के दृश्यों को आकार दिया गया है?जब एक टुकड़े में सभी दृष्टिकोण एक आकार दिया गया है?

एक अनुशासनिक के रूप में, मैं इस जीवन चक्र घटना को व्यूपेजर में टुकड़ों पर लागू होने के लिए भी पसंद करूंगा।

उत्तर

1

मुझे नहीं लगता कि सभी दृश्यों का आकार सुनिश्चित करने के लिए कोई भी फ्रैगमेंट लाइफसाइक्ल ईवेंट होगा।

एक्टिविटीक्रेटेड() पर ऑनलेआउट चेंजलिस्टर का उपयोग करने के लिए मैं आमतौर पर क्या करूँगा। इस तरह,

getView().addOnLayoutChangeListener(new View.OnLayoutChangeListener() { 
      @Override 
      public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { 
       getView().removeOnLayoutChangeListener(this); 

       // Check the size of Views here. 
      } 
     }); 
+0

यह मामला है कि टुकड़े दृश्य उनके आकार सेट जब 'onActivityCreated()' कहा जाता है नहीं किया है है, और वे जब यह कॉलबैक किया जाता है है? क्या इससे कोई फर्क पड़ता है जहां हम इस श्रोता को संलग्न करते हैं? उदाहरण के लिए, क्या हम इसे 'onCreateView() 'या' onViewCreated() 'में संलग्न कर सकते हैं? –

+0

हां, इस बात की कोई गारंटी नहीं है कि फ्रैगमेंट व्यू के आकार का सेट होता है जब 'एक्टिविटीक्रेटेड()' कहा जाता है (मैंने इसे चेक किया है)। दृश्य की सीमाओं में परिवर्तन होने पर OnLayoutChangeListener को कॉलबैक मिल जाता है। तो जब दृश्यों का आकार सेट होता है तो कॉलबैक प्राप्त होगा। इस उद्देश्य के लिए मैंने इस श्रोता का उपयोग करके कुछ गूगलर का कोड देखा है। – Bob

+0

आपके दूसरे प्रश्न का उत्तर देने के लिए, मैं आमतौर पर 'ऑनक्रेट व्यू()' के अंदर फ्रैगमेंट लेआउट को बढ़ाता हूं, और 'एक्टिविटीक्रेटेड()' के अंदर सभी प्रारंभिक कार्य करता हूं, क्योंकि 'एक्टिविटीक्रेटेड()' को पैरेंट एक्टिविटी 'ऑनक्रेट () 'पूरा हो गया है। इसलिए, मुझे केवल 'atActivityCreated()' के अंदर व्यू संदर्भ प्राप्त होंगे और इसके बाद मैं 'ऑनलेआउट चेंजलिस्टर' सेट करूंगा। ताकि मैं सुनिश्चित हो सकूं कि श्रोता के अंदर उपयोग किए गए दृश्य शून्य नहीं होंगे। – Bob

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