2010-02-20 19 views
6

मैं एक विजेट की तलाश में हूं जो गैलरी विजेट के समान व्यवहार करता है लेकिन क्षैतिज रूप से लंबवत स्क्रॉल करता है। मैं चारों ओर घूमता हूं और स्पष्ट रूप से जवाब ऐसा पूर्व-निर्मित विजेट मौजूद नहीं है।एंड्रॉइड: एक लंबवत गैलरी?

तो मैंने कहा अपने आप को, ओह ठीक है, मुझे एंड्रॉयड स्रोत में गैलरी वर्ग को देखो और संशोधित कि बजाय खड़ी स्क्रॉल करने के लिए होगा। इतना आसान नही। एंड्रॉइड एसडीके बहुत दूर छुपाता है (समझदारी से फ्रेमवर्क रखरखाव के लिए), लेकिन यह विजेट को विस्तारित करना भी बहुत मुश्किल बनाता है। गैलरी वर्ग, उदाहरण के लिए, अपने माता-पिता, AbsSpinner से सदस्य चर का एक बहुत का उपयोग करें (mSelectedPosition, etc.etc।), और उसकी मूल के माता-पिता, आदि ... जो एप्लिकेशन-डेवलपर के दृष्टिकोण से बिल्कुल भी सुलभ नहीं हैं। उन सदस्य चर के उपयोग के बिना, मैं अपने स्वयं के उपयोग के लिए गैलरी कक्षा से समान कोड का उपयोग नहीं कर सकता।

विरासत श्रृंखला को आगे बढ़ाने और मेरे प्रोजेक्ट में उन सभी अभिभावकों के स्रोत कोड को डालने के लिए, या मौजूदा फ्रेमवर्क विगेट्स का उपयोग किए बिना विजेट को सभी स्क्रैच से लिखना जो पहले ही समस्या हल कर चुका है, मुझे कोई नहीं मिला एक लंबवत स्क्रॉलिंग गैलरी पाने के लिए रास्ता।

वहाँ चारों ओर एक बेहतर तरीका है? एंड्रॉइड ढांचा क्यों विजेट को विस्तारित करना इतना मुश्किल है?

+1

आपको जिस व्यवहार की आवश्यकता है, उसके आधार पर, एक सामान्य सूची दृश्य का उपयोग क्यों न करें, एक क्षैतिज लीनियरआउट के अंदर, दूसरी तरफ एक छवि दृश्य के साथ? –

उत्तर

12

वहाँ चारों ओर एक बेहतर तरीका है?

के बाद से हम नहीं जानते कि आप क्या बना रहे हैं, कि कहने के लिए असंभव है। मैं योनी सामलान की टिप्पणी से सहमत हूं कि ListView आपकी आवश्यकताओं के लिए पर्याप्त हो सकता है।

एंड्रॉइड फ्रेमवर्क विजेट को इतना कठिन क्यों बनाता है?

हालांकि यह बोधगम्य है कि एक reimplemented Gallery यह सरल आप इसे ओरिएंट अलग ढंग से करने के लिए कर सकता है, कोर एंड्रॉयड टीम अन्य विकास की प्राथमिकताओं के खिलाफ इस तरह के reimplementation वज़न है।

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

एंड्रॉयड शुरू में लिखा गया था से पहले एक SDK अस्तित्व में। यही कारण है कि अधिकांश अंतर्निहित अनुप्रयोगों (उदाहरण के लिए, कैलकुलेटर) अकेले एसडीके के साथ क्यों नहीं बनाया जा सकता है, लेकिन फर्मवेयर छवि के हिस्से के रूप में बनाया जाना चाहिए। इसी तरह, मूल एंड्रॉइड टीम को शुरुआती एसडीके बनाने के हिस्से के रूप में निर्णय लेना पड़ा था, मौजूदा कोड को कैसे लेना है और सार्वजनिक सामग्री बनाने के लिए हम एसडीके निष्ठा के साथ काम कर सकते हैं और सुरक्षित/निजी सामान के साथ काम कर सकते हैं। जैसा कि आपने देखा होगा, एंड्रॉइड विशाल है, और इसलिए एसडीके बनाने के लिए कर्मचारियों की एक बड़ी मात्रा में कर्मचारी समय लेना होगा। कहें कि इसमें से कुछ बाधाओं को बढ़ाने के लिए बहुत कुछ लिखना, कहें, एक लंबवत Gallery उनकी सूची में शायद अधिक नहीं था।

एक आदर्श दुनिया में, हां, हम अधिक आसानी से अंतर्निहित विजेट का विस्तार करने और उनके व्यवहार को महत्वपूर्ण रूप से संशोधित करने में सक्षम होंगे। इसी तरह, एक आदर्श दुनिया में, मेरे बाल होंगे ...:-)

+9

+1, 'इसी तरह, एक आदर्श दुनिया में, मेरे बाल होंगे ... :-) ' – Samuel

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