क्या डेटाबंडिंग के साथ viewStubs का उपयोग करने के लिए वैसे भी है? ViewStubProxy मदद कर सकते हैं?एंड्रॉइड डेटा बाध्यकारी - डेटा बाइंडिंग के साथ व्यूस्ट्यूब का उपयोग कैसे करें
मेरे ठूंठ वर्तमान इस तरह दिखता है:
<ViewStub
android:id="@+id/stub_import"
android:inflatedId="@+id/panel_import"
android:layout="@layout/progress_overlay"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="@{myobject.bottom ? bottom:top}" />
लेकिन इस लेआउट बदल दिया जाएगा जब मैं viewStub बढ़ तो कैसे ViewStubs एंड्रॉयड databinding के साथ प्रयोग किया जा सकता है?
इस मैं क्या docs से देख रहा है:
ViewStubs
ViewStubs सामान्य दृश्य से थोड़ी अलग हैं। वे अदृश्य हो जाते हैं और जब वे या तो दिखाई देते हैं या स्पष्ट रूप से को फुलाए जाने के लिए स्पष्ट रूप से बताया जाता है, तो वे खुद को लेआउट को बढ़ाकर लेआउट में बदल देते हैं।
क्योंकि व्यूस्ट्यूब दृश्य दृश्य पदानुक्रम से अनिवार्य रूप से गायब हो जाता है, बाइंडिंग ऑब्जेक्ट में दृश्य संग्रह को अनुमति देने के लिए भी गायब होना चाहिए। चूंकि दृश्य अंतिम हैं, ViewStubProxy ऑब्जेक्ट व्यूस्ट्यूब की जगह लेता है, जो डेवलपर को व्यूस्ट्यूब पर मौजूद होने पर पहुंच प्रदान करता है और व्यूस्ट्यूब फुलाए जाने पर फुलाए गए दृश्य पदानुक्रम तक पहुंच प्रदान करता है।
एक और लेआउट फुलाते समय, नए लेआउट के लिए बाध्यकारी स्थापित किया जाना चाहिए। इसलिए, ViewStubProxy को ViewStub के ViewStub.OnInflateListener को सुनना चाहिए और उस समय बाध्यकारी स्थापित करना होगा। चूंकि केवल एक ही अस्तित्व में है, ViewStubProxy डेवलपर को पर ऑनइनफ्लैट लिस्टर सेट करने की अनुमति देता है कि यह बाध्यकारी स्थापित करने के बाद कॉल करेगा।
एक नोट, 'ViewStubBinding के रूप में 'कक्षा नहीं है, यह दृश्य स्टब के लिए बाध्यकारी वर्ग है। इसे समझने में मुझे थोड़ी देर लग गई; उम्मीद है कि यह टिप्पणी किसी और की मदद करेगी। – BlackHatSamurai