16

क्या एंड्रॉइड क्रियाएँ बनाम फ्रैगमेंट्स में यूआई संक्रमण को संभालने के तरीके पर कोई पैटर्न है? मैं वर्तमान में एक यूआई में देख रहा हूं जिसमें लैंडस्केप में अधिकतम 3 कॉलम हैं। मैं यूआई को स्क्रीन पर सभी तरह से 1 कॉलम से शुरू करना चाहता हूं और फिर दूसरे कॉलम में कुछ स्थानांतरित करने के चयन पर और फिर टैबलेट और फोन पर तीसरे फीड में दूसरी फीड में क्लिक करने और पहले फीका करना चाहता हूं फोन पर कॉलम। मुझे आश्चर्य है कि मुझे इसे एक गतिविधि संक्रमण के रूप में क्यों करना चाहिए और जब मुझे केवल दृश्यों के साथ Fragments का उपयोग करना चाहिए। जहां तक ​​मैंने टुकड़े पढ़े हैं, उन्हें अन्य गतिविधियों में स्थानांतरित किया जा सकता है, इसलिए मेरी पसंद या तो स्थैतिक कॉलम लेआउट के साथ क्रियाकलापों को कार्यान्वित करती है जो तब उनके साथ टुकड़े लेती हैं या सभी 3 कॉलमों के साथ एक गतिविधि होती है और गतिविधि को प्रकट करने का प्रबंधन होता है टुकड़े टुकड़े। दोनों दृष्टिकोण काम कर सकते थे लेकिन मुझे दोनों समाधानों के लिए कई कोणों से पेशेवरों और विपक्ष में रूचि थी।गतिविधि संक्रमण जब डायनामिक फ्रैगमेंट्स का उपयोग करने के लिए पैटर्न

मैं क्या पूछ रहा हूँ के लिए इसी तरह दो सवाल हैं लेकिन काफी जवाब नहीं मेरा

उत्तर

12

टुकड़े एक गतिविधि में केवल एक दृश्य के बजाय, एक टुकड़े में एक दृश्य डाल रहे हैं, और एक गतिविधि में एक टुकड़ा डाल रहे हैं), लेकिन वे आपको बचाने में बहुत अच्छे हैं इस तरह की स्थिति में सिरदर्द- निश्चित रूप से टुकड़ों के साथ जाओ। वे आपके लिए संक्रमण भी संभालते हैं।

हमारे पास "हनीकॉम गैलरी" नामक कुछ नमूना कोड है, आप here पर एक नज़र डाल सकते हैं, जिसमें दो कॉलम-प्लस-एक्शनबार लेआउट है, और बाएं कॉलम को दिखाने/छिपाने की क्षमता है। यह आपको कई टुकड़ों के लिए लेआउट कैसे करना है और उन्हें दिखाने/छिपाने के तरीके को समझने में एक अच्छा सिर शुरू करना चाहिए।

एफवाईआई, कई गतिविधियों के बजाए एक गतिविधि में कई टुकड़ों का उपयोग करने के लिए एक महत्वपूर्ण व्यापार-बंद है, यह है कि टुकड़े सीधे इरादों का जवाब नहीं देते हैं - उदाहरण के लिए, यदि आपके पास एक नोट लेने वाला ऐप था जहां "नोट नोट" पृष्ठ एक गतिविधि थी, और आपने इसे बदल दिया ताकि मुख्य गतिविधि के अंदर एक "दृश्य नोट" खंडन हो, तो आपको इसे सेट करना होगा जैसे मुख्य गतिविधि को एक नोट आईडी और एक नोट एक्शन (बनाएं, देखें , संपादित करें, जो भी हो) इरादे में, केवल "दृश्य नोट" गतिविधि के विरोध में इरादे में नोट आईडी प्राप्त होती है। तब मुख्य गतिविधि को तदनुसार पृष्ठ पर टुकड़े स्थापित करने की आवश्यकता होगी। कोई बड़ा सौदा नहीं है, लेकिन यदि इरादे के माध्यम से आपके आवेदन के विभिन्न हिस्सों में बाहरी पहुंच महत्वपूर्ण है, तो कुछ ऐप में अपने ऐप को तोड़ना आसान हो सकता है, साथ ही अलग-अलग घटकों का प्रतिनिधित्व करने के लिए टुकड़ों का उपयोग करना आसान हो सकता है।

+0

धन्यवाद अलेक्जेंडर जो एक अच्छा सूचक है, मैं वास्तव में उस नमूना ऐप के बारे में भूल गया था। मेरे लिए यह एक्टिवेट्स बनाम फ्रैगमेंट्स के बारे में कम है और एक गतिविधि का उपयोग करने के बारे में और अधिक है जो स्थैतिक टुकड़ों को नियंत्रित करता है और जब गतिशील रूप से टुकड़े को लोड करता है। मुझे लगता है कि एक अच्छी पैटर्न रूपरेखा इरादा तंत्र है। इसलिए यदि आप चाहते हैं कि स्क्रीन किसी इरादे के माध्यम से एड्रेसेबल हो, तो उसे अपनी गतिविधि में रखें। क्या आप अन्य पैटर्न के बारे में सोच सकते हैं? क्या आइसक्रीम सैंडविच कोर ऐप्स में उनके अच्छे पैटर्न होंगे कि कोई भी फ्रैगमेंट्स का सर्वोत्तम उपयोग करने के तरीके का अध्ययन करने के लिए उपयोग कर सकता है? – AGrunewald

+1

हाल ही में हनीकॉम एंड्रॉइड देव लैब में, हमारे पास एक देव था कि वे "जीमेल क्या करेंगे" से जाते हैं। जबकि आपके ऐप में जो काम करता है वह हमेशा सबसे महत्वपूर्ण होता है, लेकिन वे एक अच्छा मुद्दा उठाते हैं कि जीमेल ऐप (टैबलेट और फोन दोनों) टुकड़ों के अच्छे उपयोग के संदर्भ में एक बहुत ही ठोस संदर्भ है, और एक्शन बार आइटम और दृश्यमान टुकड़े दोनों को अपडेट करना संदर्भ के आधार पर (यानी, एक्शनबार आइटम इस बात पर आधारित होते हैं कि आप एक ईमेल पढ़ रहे हैं, एक लिख रहे हैं या ईमेल की सूची ब्राउज़ कर रहे हैं।) हनीकॉम, यूट्यूब और संपर्क में भी कमाल है। प्रति आईसीएस, मैं अभी तक विवरण के बारे में बात नहीं कर सकता :) –

+0

महान अद्यतन अलेक्जेंडर के लिए धन्यवाद। मैं कोड देखने के लिए आईसीएस ओपन सोर्स ड्रॉप की प्रतीक्षा कर रहा हूं। मुझे पता है कि कई Google Apps शामिल नहीं हैं लेकिन मेरा मानना ​​है कि खुले स्रोत पेड़ में अभी भी बहुत कुछ सीखने के लिए पर्याप्त कोर ऐप्स हैं। – AGrunewald

1

पेज The Android 3.0 Fragments API के आधार पर, एक गतिविधि अकेले खड़े है, जबकि एक टुकड़ा मिनी-एक्टिविटी के रूप में हो सकता है, जिसे वास्तविक गतिविधि में होस्ट किया जाना चाहिए।

यह कहता है कि फ्रैगमेंट एपीआई की शुरूआत ने एंड्रॉइड डेवलपर्स को गतिविधियों के साथ प्रभावित कई दर्द बिंदु डेवलपर्स को संबोधित करने का मौका दिया, इसलिए एंड्रॉइड 3.0 में फ्रैगमेंट की उपयोगिता अलग-अलग स्क्रीन के लिए समायोजित करने से कहीं अधिक है :

मुझे लगता है कि एक ऐप के लिए एक ही गतिविधि का उपयोग करना गलत निर्णय नहीं है, केवल शैली का मामला है। यह एक निर्णय है कि आपको जो कुछ करने की कोशिश कर रहे हैं उसके आधार पर आपको बनाना चाहिए।

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

उपयोग टुकड़े के लिए

+0

टिप्पणी नूह के लिए धन्यवाद, मैं जो कह रहा हूं उससे सहमत हूं, दुर्भाग्य से यह मेरे प्रश्न का उत्तर नहीं देता क्योंकि मैं पैटर्न की तलाश में था। लेकिन ऐसा लगता है कि हम अभी भी टुकड़े टुकड़े के साथ नई जमीन तोड़ रहे हैं। – AGrunewald

1

उपयोग क्रियाएँ हो सकता है के भाग या कोई स्क्रीन (लेकिन एक सेवा)

अपने मुख्य आवेदन में के लिए , एक क्षैतिज स्क्रॉल-व्यू में ऑन-स्क्रीन टैब हैं जो मैं ऐप के कई सेक्शन में रहना चाहता था। अनुभागों में समाचार, फोटो, वीडियो, अनुसूची आदि शामिल हैं सभी एकल उपयोगकर्ता केंद्रित कार्य।

मुख्य एप्लिकेशन जो इसे सभी रखता है वह एक एप्लिकेशन है, और टैब केवल एक दृश्य है जो खंड प्रबंधक को कॉल करता है।

हालांकि, मैं आवेदन में गहरी जटिल उपयोगकर्ता गतिविधियों के लिए क्रियाकलापों का उपयोग करता हूं। जैसे अगर कोई वीडियो चलाता है, तो आइटम विवरण पृष्ठ और फोटो गैलरी/स्लाइड शो अनुभाग देखता है, क्योंकि वे सभी पूर्ण स्क्रीन घटक होते हैं।

पूर्ण स्क्रीन पर संक्रमण करते समय टुकड़े दिखाने/छिपाने की कोई आवश्यकता नहीं है क्योंकि गतिविधि स्टैक वह सब कुछ संभालती है जिसे आप जल्दी और आसानी से करना चाहते हैं, और अपना कोड न्यूनतम और साफ रखें।

तो मेरे पास गतिविधि -> घर के टुकड़े हैं -> विशेष आदेशों के लिए पूर्ण स्क्रीन क्रियाएँ लॉन्च करें।

+0

उत्तर के लिए धन्यवाद HaMMeReD मुझे यह पहले से ही पता था :-) प्रश्न को और अधिक निर्देशित किया गया था कि स्क्रीन को बदलने के लिए सक्रियण के बीच संक्रमण कब और गतिशील टुकड़ों को बदलने के लिए कब किया गया था। – AGrunewald

+0

हर बार जब यह एक पूर्ण स्क्रीन घटक है क्रियाएँ का उपयोग करें। आप कई गतिविधियों में टुकड़ों का पुन: उपयोग कर सकते हैं। – HaMMeReD

+0

असल में, फ़ोन पर एक पूर्ण-स्क्रीन घटक बनाता है जो टैबलेट पर एक पार्ट-स्क्रीन घटक होता है, इसलिए यह अभी भी गतिविधियों की बजाय टुकड़ों में "पूर्ण स्क्रीन" बिट्स डालने का अर्थ बनाता है। –