Friday, 17 November 2017

Edgesforextendedlayout scrollviewsuite


समस्या यह है कि मेरे दृश्य, जिसमें एक स्क्रॉलव्यू के भीतर एक UIView और एक UITableView शामिल है UINavigationBar के तहत छिपी हो जाता है अगर पारदर्शी सेट मैंने इस तरह से कई धागे पर विचार किया है। लेकिन वे सभी सेट करने का सुझाव देते हैं: स्विफ्ट 2 में, यह कोड था: आज मैं Xcode 8.1 और स्विफ्ट 3.0.1 में अपडेट किया गया है, लेकिन मैं इस मामले के रिलीज नोट्स में कुछ भी नहीं ढूँढ सकता। कंपाइलर मुझे बताता है कि, लेकिन संपादित करने के बाद, कि। कोई भी मौजूद नहीं है इसे बदलने के लिए. top का कोई प्रभाव नहीं था टेबलव्यू प्रोग्रामैटैटिक रूप से सेटअप किया जाता है और इनसेट को डालने में मदद नहीं करता क्योंकि UITableView के शीर्ष पर यूआईवीयूवी के साथ मेरे पास स्क्रॉलव्यू है जो यूआईनेविगेशनबार के नीचे छिपा हुआ है। मुझे क्या याद आ रही है मदद की बहुत सराहना की है 29 अक्तूबर 16 को 3: 45 बिल्डिंग डायनेमिक कस्टम विचारों को 29 अगस्त को पूछा। 2018 11:29 am टिप्पणियां पिछले हफ्ते मैंने एंड्रॉइड के लिए फ्रैगमेंट का विमोचन किया। टुकड़ा कस्टम दृश्यों के सभी प्रकार से बना है, जो मुझे लगता है कि इसे प्ले स्टोर में कई ऐप से अलग करता है। इन दृश्यों में से कुछ को समान रूप से देखने के लिए इरस्क्यूव को अन्य एप्लिकेशन के लिए बनाना था, जिसमें एक स्क्रॉल व्यू में पैडिंग होते हैं, जिसमें प्रत्येक आइटम दृश्य के केंद्र में स्क्रॉल किया जा सकता है। इटर्सक्वोस की सतह पर यह जटिल लग रहा है, लेकिन जब आप एंड्रॉइड पर उपलब्ध स्क्रीन आकारों में भारी अंतर पर विचार करते हैं, तो चीजें थोड़ा और अधिक जटिल हो जाती हैं नियंत्रण Letrsquos हमारे अंत लक्ष्य को परिभाषित करने के द्वारा शुरू जो नियंत्रण हम बनाना चाहते हैं वह उपयोगकर्ता को किसी दृश्य को स्क्रॉल करने की अनुमति देता है जैसे कि किसी भी सामग्री को स्क्रीन के केंद्र में ले जाया जा सकता है। हाइरोस्कोवो एक एनीमेशन दिखा रहा है जो मेरा मतलब है। यह नियंत्रण, उबला हुआ, वास्तव में सिर्फ एक क्षैतिजस्क्रीनव्यू है। ध्यान दें कि जब उपयोगकर्ता अंत तक स्क्रॉल करता है, तो एक अच्छा ओवरस्क्रॉल सूचक होता है। जब उपयोगकर्ता नियंत्रण flings, यह तदनुसार चाल। नियंत्रण अच्छी तरह से अन्य सभी एंड्रॉइड स्क्रॉलवियस की तरह ही निकलता है, जिससे यह उपयोगकर्ता के लिए स्वाभाविक लगता है। ये सभी चीजें हैं जो एंड्रॉइड विजेट में एक बिल्ड को उप-क्लासिंग करके मुफ्त में मिलती हैं। हालांकि, यह दृश्य दो चुनौतियों का सामना करता है सबसे पहले, ScrollView को देखने योग्य होना चाहिए, इसलिए जब भी उपयोगकर्ता दृश्य को स्क्रॉल करता है, तो हम अपने मूल्य को अपडेट कर सकते हैं। दूसरा, हमें दृश्य के प्रत्येक तरफ पर्याप्त पैडिंग की आवश्यकता है ताकि सामग्री ऐसी स्क्रॉल करेगी कि किनारों को स्क्रीन के केंद्र से संरेखित करें। Letrsquos नीचे एक समय में इन एक से निपटने एक अवलोकन ScrollView पहली चुनौती, एक अवलोकन ScrollView (हमारे मामले में क्षैतिज) बनाने, वास्तव में बहुत सरल है ScrollView की ओरिएंटेशन isnrsquot महत्वपूर्ण है, इसलिए यह ऊर्ध्वाधर या क्षैतिज स्क्रॉल दृश्यों के साथ काम करेगा। यह एक आश्चर्यजनक सरल समस्या है, और आईरस्क्वॉम हमेशा आश्चर्यचकित हो जाता है जब आईरस्कॉम ने यह याद दिलाया कि यह सुविधा डिफ़ॉल्ट एंड्रॉइड स्क्रॉलविय्यू क्लास में बनाई गई है। सूची दृश्य में स्क्रॉल स्थिति परिवर्तनों के साथ अधिसूचित होने के लिए एक श्रोता इंटरफ़ेस है, इसलिए क्यों नहीं ScrollView Letrsquos बस मान लेते हैं कि एओएसपी डेवलपर्स ने सोचा था कि यह आवश्यक होना आसान था। जबकि ScrollView वर्गों में निर्मित डोनसक्वाट में एक ऑनस्क्रॉल चेंजेड लिस्टनर इंटरफ़ेस है, उनके पास सेक्रॉल चेंगर्ड विधि पर संरक्षित है, इसलिए हम आसानी से केवल हमारे चुनने के ScrollView को उपवर्ग कर सकते हैं और अपना स्वयं का इंटरफ़ेस बना सकते हैं। येरेक्विस मेरा क्या दिखता है जैसा कि आप देख सकते हैं, केवल एक चीज जो आईरस्कॉव यहां गयी थी, वह ऑनस्क्रॉल चेंज लिस्टनर इंटरफ़ेस है, और इसे जब स्क्रॉल विवरस्क्रोज की स्थिति में बदलता है यह एक सुपर सरल उपवर्ग है जो कि ScrollView क्लासेस में निर्मित के लिए बहुत अधिक मूल्य जोड़ता है। Herersquos आप कैसे उपयोग कर सकते हैं इसका एक उदाहरण यह सरल समाधान हमें वही प्राप्त होता है जो हम चाहते हैं, और लागू करने के लिए जितना ज्यादा प्रयास करता है, क्लास के नाम के अलावा, मुझे लगता है कि यह अन्य एंड्रॉइड एपीआई कक्षाओं के साथ भी बहुत अच्छी तरह से फिट बैठता है। मैं इस सुरुचिपूर्ण समाधान के साथ कहां आया था, आप पूछते हैं कि जब इरसाव ने कई बार बताया कि यह एक बहुत आसान समाधान है, इस समस्या का दृष्टिकोण कैसे लगाया जाए, वास्तव में ओपन सोर्स कोड के एक टुकड़े से आया है जिसे मैंने कुछ समय पहले देखा था। यही कारण है कि यह ओपन सोर्स में शामिल होने का भुगतान करता है, भले ही यह दूसरे लोगों के कोड के माध्यम से डाइविंग हो। गतिशील पैडिंग यह दूसरा चुनौती है जिसे हम यह देखते हुए पहचाना था कि स्क्रॉलिंग सामग्री को स्क्रीन के केंद्र में रहने की आवश्यकता है। यहां चुनौती यह है कि हम समय को संकलित करने पर स्क्रीन की चौड़ाई को जानते हैं, और जब तक यह मापा नहीं जाता है तब तक दृश्य की चौड़ाई भी मिलती है, इसलिए हमें स्क्रॉलिंग सामग्री के आसपास रिक्ति जोड़ने का एक गतिशील तरीका चाहिए। नीचे मैं इस समस्या के दो तरीकों की रूपरेखा करता हूं, लेकिन दोनों ही समस्या को उसी फैशन में हल करते हैं। मूल विचार स्क्रॉलिंग सामग्री के पहले और बाद में अदृश्य अड़चनों को उचित रूप से आकार देने है ताकि वास्तविक सामग्री स्क्रॉल व्यू के केंद्र में अपनी बाईं किनारे को स्क्रॉल करने में सक्षम हो। जैसा कि आप ऊपर दिए गए चित्र में देख सकते हैं, ScrollView को itrsquos स्क्रॉलिंग के संबंध में कुछ अलग करने की आवश्यकता नहीं है, यह सिर्फ आइटम को उपयोगकर्ता को केंद्र तक स्क्रॉल करने की अनुमति देता है। OnPreDrawListener एक तरह से हम इसे प्राप्त कर सकते हैं ViewTreeObserver rsquos OnPreDrawListener का उपयोग कर। यह एक सुपर आसान कॉलबैक है जिसे हमारे विचारों से पहले तैयार किया जाता है, लेकिन उन्हें मापा जाने के बाद कहा जाता है। जब हम दृश्य के आकार को जानते हैं तो यह हमें हमारे विचारों को संशोधित करने के लिए अनुमति देता है (spacers जोड़ें) Herersquos एक उदाहरण: यह एक अच्छा दृष्टिकोण है क्योंकि यह कोड में किसी भी ScrollView पर जोड़ा जा सकता है, अपने मौजूदा लेआउट को संशोधित किए बिना (ScrollView का बच्चा मानते हुए उचित रूप से एक LinearLayout है)। इसे देखने के सहायक में फेंको और यह ViewHelper. addScrollingSpacers (scrollView) के रूप में सरल हो सकता है। इस दृष्टिकोण का एक नकारात्मक पक्ष यह है कि हम वास्तव में एक माप-लेआउट-ड्रा चक्र को फेंक देते हैं। याद रखें कि हमारे ऑनप्रेड्रोलाइस्टर को इस चक्र के अंत में कहा जाता है ताकि हम अपने ScrollView की चौड़ाई को जानते हों। इसका मतलब है कि पहली बार के आसपास, यह वास्तव में एक माप-लेआउट-ऐड-स्पार्स-मापन-लेआउट-ड्रॉ चक्र है। दिन के अंत में, चूंकि यह केवल एक बार होता है, आमतौर पर यह एक बड़ा सौदा नहीं होता है, लेकिन यह नोट करना कुछ है। लेकिन क्या होगा अगर हमारे उपाय पहले से माप-लेआउट-ड्रॉ चक्र में जोड़ने का एक तरीका था, तो ऐसा होगा। चूंकि हम वस्तुओं के लेआउट को संशोधित करना चाहते हैं, कस्टम परिसर के दृश्य के साथ हम लेआउट चक्र के दौरान हमारे समायोजन कर सकते हैं, जिसका अर्थ नहीं व्यर्थ समय है। Herersquos कि कैसे हम इसे पूरा कर सकता है इस उदाहरण में, आप देख सकते हैं कि हमारे कस्टम यौगिक दृश्य वास्तव में एक ObservableHorizontalScrollView का कंटेनर है, और जब यह प्रारंभिक लेआउट पास के दौरान लेआउट बदलता है, तो यह स्पेसर चौड़ाई सेट करता है यह दृष्टिकोण हमारे एक्सएमएल लेआउट के माध्यम से आसानी से पुन: प्रयोज्य बनाता है, जैसे: अब आपके पास एक कस्टम दृश्य बनाने के कुछ अलग तरीके हैं जो आपके उपयोगकर्ताओं को प्रसन्न करेंगे। जो आप चुनते हैं वह पूरी तरह आप पर निर्भर है, लेकिन दोनों ListViews, या वास्तव में किसी भी स्क्रॉल दृश्य के साथ काम करने के लिए बढ़ाया जा सकता है जिसमें आप कुछ अतिरिक्त स्थान चाहते हैं। इन तकनीकों का इस्तेमाल अन्य प्रभावों के लिए भी किया जा सकता है। उदाहरण के लिए, कस्टम मान चयनकर्ताओं के लिए इसका उपयोग करने के अलावा, इरस्क्यूव ने लंबवत प्रभावों जैसी चीजों के लिए समान दृष्टिकोण का इस्तेमाल किया। अपने टूलबाल्ट के लिए अबर्सक्वोस उपकरण का एक और जोड़ा है। अगर yoursquove ने ऐसा कुछ किया है, या एक और दृष्टिकोण है, तो उसे टिप्पणी में साझा करें रयान हर्टर द्वारा 29 अगस्त को पोस्ट किया गया 2018 11:29 पूर्वाह्न हाल के पोस्ट Google

No comments:

Post a Comment