<घंटा/>
यह उदाहरण दर्शाता है कि कोटलिन का उपयोग करके Android में RecyclerView के साथ एक अंतहीन सूची को कैसे कार्यान्वित किया जाए।
चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।
चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।
चरण 3 - निम्न कोड को src/MainActivity.kt में जोड़ें
आयात करें RecyclerViewAdapter var RowsArrayList:ArrayList =ArrayList() var isLoading =false ओवरराइड fun onCreate(savedInstanceState:Bundle?) {super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) title ="KotlinApp" recyclerView =findViewById(R .id.recyclerView) populateData() initAdapter() initScrollListener() } निजी मज़ा initScrollListener() {recyclerView.addOnScrollListener (ऑब्जेक्ट:RecyclerView.OnScrollListener() { ओवरराइड फन ऑनस्क्रॉल (रीसाइक्लर व्यू:रिसाइक्लर व्यू, डीएक्स:इंट, डाई:इंट) { super.onScrolled(recyclerView, dx, dy) वैल लीनियरलेआउटमैनेजर =रिसाइक्लर View.layoutManager को LinearLayoutManager के रूप में? if (!isLoading) { if (linearLayoutManager !=null &&LinearLayoutManager.findLastCompletelyVisibleItemPosition() ==RowArrayList.size - 1) {// नीचे की सूची! loadMore() isLoading =true } } } }) } निजी मज़ा initAdapter() { recyclerViewAdapter =RecyclerViewAdapter (rowsArrayList) recyclerView.layoutManager =LinearLayoutManager(applicationContext) recyclerView.adapter =recyclerViewAdapter} निजी मज़ा populateData() { के लिए (i में 0. .9) { RowsArrayList.add("Number $i") } } Private fun loadMore() { RowArrayList.add(null.toString()) recyclerViewAdapter.notifyItemInserted(rowsArrayList.size -1) वैल हैंडलर =हैंडलर () हैंडलर। postDelayed(Runnable {rowArrayList.removeAt(rowsArrayList.size - 1) वैल स्क्रॉलपोजिशन =RowArrayList.size recyclerViewAdapter.notifyItemRemoved(scrollPosition) var currentSize =scrollPosition val nextLimit =currentSize + 10 जबकि (currentSize − 1
चरण 4 - एक नया वर्ग RecyclerViewAdapter.kt बनाएँ और निम्नलिखित कोड जोड़ें -
<पूर्व>आयात android.view.LayoutInflaterimport android.view.Viewimport android.view.ViewGroupimport android.widget.ProgressBarimport android.widget.TextViewimport androidx.annotation.NonNullimport androidx.recyclerview.widget.RecyclerViewimport androidx.recyclerview.widget.RecyclerViewimport androidx.recyclerview.widget.ViewHolderclass. RecyclerViewAdapter आंतरिक कंस्ट्रक्टर (निजी वैल आइटम सूची:सूची <स्ट्रिंग>):RecyclerView.Adapter() { निजी वैल व्यूइटम टाइप =0 @NonNull ओवरराइड फन ऑनक्रिएट व्यूहोल्डर (@NonNull पैरेंट:व्यूग्रुप, व्यू टाइप:इंट):व्यूहोल्डर {रिटर्न अगर ( व्यू टाइप ==व्यूइटम टाइप) {वैल व्यू =लेआउटइन्फ्लेटर.फ्रॉम (पैरेंट.कॉन्टेक्स्ट)। इनफ्लेट (आर.लेआउट.आइटम_रो, पैरेंट, फाल्स) आइटम व्यूहोल्डर (व्यू)} और {वैल व्यू =लेआउटइन्फ्लेटर.फ्रॉम (पैरेंट.कॉन्टेक्स्ट) .inflate (R.layout.item_loading, पैरेंट, असत्य) LoadingViewHolder(view) } } बिंदव्यूहोल्डर पर मस्ती को ओवरराइड करें(@NonNull viewHolder:ViewHolder, position:Int) { if (viewHo lder ItemViewHolder है) {populateItemRows (व्यूहोल्डर, पोजीशन)} और अगर (व्यूहोल्डर लोड हो रहा है व्यूहोल्डर है) {शोलोडिंग व्यू (व्यूहोल्डर, पोजिशन)}} फन को ओवरराइड करें getItemViewType (पोजिशन:इंट):इंट {रिटर्न व्यूइटम टाइप} प्राइवेट इनर क्लास आइटम व्यूहोल्डर इंटरनल कंस्ट्रक्टर (@ नॉननल आइटम व्यू:व्यू):व्यूहोल्डर (आइटम व्यू) {आंतरिक वर टीवीआइटम:टेक्स्ट व्यू =आइटम व्यू। .findViewById(R.id.progressBar) } फन को ओवरराइड करें getItemCount ():इंट {रिटर्न आइटम लिस्ट.साइज} प्राइवेट फन शोलोडिंग व्यू (व्यूहोल्डर:लोडिंग व्यूहोल्डर, पोजीशन:इंट) {} प्राइवेट फन पॉप्युलेट इटैमरो (व्यूहोल्डर:आइटम व्यूहोल्डर, पोजीशन:इंट) { वैल आइटम =आइटमलिस्ट [स्थिति] viewHolder.tvItem.text =आइटम}}
चरण 5 - एक लेआउट संसाधन फ़ाइल बनाएं item_row.xml और निम्नलिखित जोड़ें -
चरण 6 - एक लेआउट संसाधन फ़ाइल बनाएं item_loading.xml और निम्नलिखित जोड़ें -
चरण 7 - निम्न कोड को androidManifest.xml में जोड़ें
<एप्लिकेशन android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android) :theme="@style/AppTheme"> <गतिविधि android:name=".MainActivity"> <इरादे-फ़िल्टर> <कार्रवाई android:name="android.intent.action.MAIN" /> <श्रेणी android:name=" android.intent.category.LAUNCHER" />
आइए अपना एप्लिकेशन चलाने का प्रयास करें। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक को खोलें और रन आइकन पर क्लिक करें टूलबार से । एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा