कुख्यात onGlobalLayoutListener()
समाधान का उपयोग किए बिना, और कस्टम व्यू को लागू किए बिना, फ्रैगमेंट में कौन सा जीवन चक्र घटना मैं कोड डाल सकता हूं और सुनिश्चित कर सकता हूं कि सभी टुकड़े के दृश्यों को आकार दिया गया है?जब एक टुकड़े में सभी दृष्टिकोण एक आकार दिया गया है?
एक अनुशासनिक के रूप में, मैं इस जीवन चक्र घटना को व्यूपेजर में टुकड़ों पर लागू होने के लिए भी पसंद करूंगा।
यह मामला है कि टुकड़े दृश्य उनके आकार सेट जब 'onActivityCreated()' कहा जाता है नहीं किया है है, और वे जब यह कॉलबैक किया जाता है है? क्या इससे कोई फर्क पड़ता है जहां हम इस श्रोता को संलग्न करते हैं? उदाहरण के लिए, क्या हम इसे 'onCreateView() 'या' onViewCreated() 'में संलग्न कर सकते हैं? –
हां, इस बात की कोई गारंटी नहीं है कि फ्रैगमेंट व्यू के आकार का सेट होता है जब 'एक्टिविटीक्रेटेड()' कहा जाता है (मैंने इसे चेक किया है)। दृश्य की सीमाओं में परिवर्तन होने पर OnLayoutChangeListener को कॉलबैक मिल जाता है। तो जब दृश्यों का आकार सेट होता है तो कॉलबैक प्राप्त होगा। इस उद्देश्य के लिए मैंने इस श्रोता का उपयोग करके कुछ गूगलर का कोड देखा है। – Bob
आपके दूसरे प्रश्न का उत्तर देने के लिए, मैं आमतौर पर 'ऑनक्रेट व्यू()' के अंदर फ्रैगमेंट लेआउट को बढ़ाता हूं, और 'एक्टिविटीक्रेटेड()' के अंदर सभी प्रारंभिक कार्य करता हूं, क्योंकि 'एक्टिविटीक्रेटेड()' को पैरेंट एक्टिविटी 'ऑनक्रेट () 'पूरा हो गया है। इसलिए, मुझे केवल 'atActivityCreated()' के अंदर व्यू संदर्भ प्राप्त होंगे और इसके बाद मैं 'ऑनलेआउट चेंजलिस्टर' सेट करूंगा। ताकि मैं सुनिश्चित हो सकूं कि श्रोता के अंदर उपयोग किए गए दृश्य शून्य नहीं होंगे। – Bob