Kotlin के Android एक्सटेंशन अब काम नहीं करते हैं. इसका मतलब है कि Kotlin का इस्तेमाल किया जा रहा है व्यू बाइंडिंग के लिए सिंथेटिक अब काम नहीं करते. अगर आपका ऐप्लिकेशन Kotlin का इस्तेमाल करता है व्यू बाइंडिंग के लिए सिंथेटिक, Jetpack व्यू बाइंडिंग पर माइग्रेट करने के लिए इस गाइड का इस्तेमाल करें.
अगर आपके ऐप्लिकेशन में व्यू बाइंडिंग के लिए पहले से Kotlin सिंथेटिक्स का इस्तेमाल नहीं किया जा रहा है, तो व्यू देखें बाइंडिंग.
Gradle फ़ाइल अपडेट करना
Android एक्सटेंशन की तरह, Jetpack व्यू बाइंडिंग भी मॉड्यूल-दर-मॉड्यूल पर चालू है
आधार पर. व्यू बाइंडिंग का इस्तेमाल करने वाले हर मॉड्यूल के लिए, viewBinding
बिल्ड सेट करें
मॉड्यूल-लेवल की build.gradle
फ़ाइल में, true
के लिए विकल्प:
ग्रूवी
android { ... buildFeatures { viewBinding true } }
Kotlin
android { ... buildFeatures { viewBinding = true } }
अगर आपका ऐप्लिकेशन Parcelable
का इस्तेमाल नहीं करता
सुविधाओं के साथ, उस लाइन को हटाएं जो Kotlin Android एक्सटेंशन को चालू करती है:
ग्रूवी
plugins { id 'kotlin-android-extensions' }
Kotlin
plugins { kotlin("android.extensions") }
किसी मॉड्यूल में व्यू बाइंडिंग को चालू करने के बारे में ज़्यादा जानने के लिए, सेटअप निर्देश दिए गए हैं.
ऐक्टिविटी और फ़्रैगमेंट क्लास अपडेट करें
Jetpack व्यू बाइंडिंग से, हर एक्सएमएल लेआउट फ़ाइल के लिए एक बाइंडिंग क्लास जनरेट होती है
जो मॉड्यूल में शामिल हैं. इस बाइंडिंग क्लास का नाम, एक्सएमएल का नाम है
फ़ाइल को पास्कल केस में रखें, जिसके आखिर में Binding शब्द जोड़ा गया हो. उदाहरण के लिए, अगर
लेआउट फ़ाइल का नाम result_profile.xml
है, जो जनरेट की गई
बाइंडिंग क्लास ResultProfileBinding
है.
इन कामों के लिए, सिंथेटिक प्रॉपर्टी के बजाय जनरेट की गई बाइंडिंग क्लास का इस्तेमाल करना रेफ़रंस व्यू की मदद से, अपनी गतिविधि और फ़्रैगमेंट क्लास में बदलाव करने के लिए फ़ॉलो किया जा रहा है:
kotlinx.android.synthetic
से इंपोर्ट किए गए सभी आइटम हटाएं.गतिविधि के लिए जनरेट की गई बाइंडिंग क्लास का इंस्टेंस इनफ़्लेट करें या फ़्रैगमेंट इस्तेमाल करना है.
- गतिविधियों के लिए, इन व्यू बाइंडिंग का इस्तेमाल करें
गतिविधियां
आपकी गतिविधि
onCreate()
तरीका. - फ़्रैगमेंट के लिए, इन व्यू बाइंडिंग का इस्तेमाल करें
फ़्रैगमेंट
आपके फ़्रैगमेंट में
onCreateView()
तरीका.
- गतिविधियों के लिए, इन व्यू बाइंडिंग का इस्तेमाल करें
गतिविधियां
आपकी गतिविधि
इसके बजाय, बाइंडिंग क्लास इंस्टेंस का इस्तेमाल करने के लिए सभी व्यू रेफ़रंस बदलें सिंथेटिक प्रॉपर्टी:
// Reference to "name" TextView using synthetic properties.
name.text = viewModel.nameString
// Reference to "name" TextView using the binding class instance.
binding.name.text = viewModel.nameString
ज़्यादा जानने के लिए, यहां दिया गया इस्तेमाल सेक्शन देखें देखने की बाइंडिंग गाइड.
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक टेक्स्ट दिखता है
- व्यू बाइंडिंग
- पेजिंग लाइब्रेरी की खास जानकारी
- पेजिंग लागू करने की प्रक्रिया की जांच करना