2012-04-04 8 views
7

वर्तमान में मैं संसाधन फ़ाइल में विभिन्न प्रकार के टुकड़ों को परिभाषित कर रहा हूं और उन्हें गतिविधि की ऑनक्रेट विधि में छुपा रहा हूं, लेकिन मैं इस दृष्टिकोण से संतुष्ट नहीं हूं क्योंकि मैं उम्मीद करता हूं कि यह प्रत्येक विशेषता को परिभाषित करने वाली विशेषताओं में से एक होगी खुद के लिए।क्या एक्सएमएल में इसकी स्थिति को परिभाषित करके छुपा हुआ एक टुकड़ा शुरू करना संभव है?

क्या मैं फ्रेगमेंट्स को बहुत अधिक या सिर्फ तकनीक खो रहा हूं?

धन्यवाद, आर

उत्तर

4

मैं के रूप में मैं इस गुण होते हैं जो प्रत्येक खंड के लिए ही परिभाषित करेगा में से एक होने की अपेक्षा करेंगे इस दृष्टिकोण के साथ संतुष्ट नहीं हूँ।

मैं उस मूल्यांकन से असहमत हूं।

टुकड़े स्क्रीन के एक छोटे से हिस्से और स्क्रीन के उस छोटे से हिस्से में पूरी तरह निहित किसी भी घटना के लिए ज़िम्मेदार हैं।

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

आखिरकार, नियम बदल सकते हैं। शायद टुकड़ा छोटे/सामान्य स्क्रीन पर छिपा हुआ है लेकिन बड़ी/xlarge स्क्रीन पर दिखाई देता है। या, शायद टुकड़ा शुरू में व्यक्तिगत रूप से उपयोग किया गया था लेकिन बाद में ViewPager में लोड किया गया है। या, शायद FragmentTransaction के हिस्से के रूप में विभाजन को गतिशील रूप से बनाया जा रहा है और बैक स्टैक में जोड़ा गया है, इसलिए उपयोगकर्ता स्वतंत्र रूप से टुकड़े से छुटकारा पा सकता है। आईएमएचओ, टुकड़े को न तो इस सामान में से किसी के बारे में पता होना चाहिए और न ही देखभाल करना चाहिए, क्योंकि यह सभी उस व्यक्तिगत टुकड़े की सीमाओं से आगे निकलता है।

+0

धन्यवाद मार्क, टुकड़ों के लिए मेरे दृष्टिकोण पर पुनर्विचार करना चाहिए। मुझे लगता है कि मैं उन्हें बहुत स्थिर तरीके से उपयोग कर रहा हूं। दस्तावेज़ वेब प्रतिमान में सोचने का सुझाव देते हैं जो शायद मैं नहीं हूं। –

+0

जावा कोड के माध्यम से छुपाकर छिपा हुआ टुकड़ा शुरू करना संभव है, न कि xml? मैं वर्तमान में छिपाने के लिए खंड के ऑनस्टार्ट() में छिपाने वाला कोड डाल रहा हूं। लेकिन, यह अभी भी दिखाई दे रहा है। – Namratha

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