रिसाइक्लर व्यू उदाहरण के लिए आइटम एनीमेशन में आने से पहले, हमें पता होना चाहिए कि एंड्रॉइड में रिसाइकलर व्यू क्या है। रिसाइकलर व्यू सूची दृश्य का अधिक उन्नत संस्करण है और यह व्यू होल्डर डिजाइन पैटर्न के आधार पर काम करता है। पुनर्चक्रण दृश्य का उपयोग करके हम ग्रिड और वस्तुओं की सूची दिखा सकते हैं।
कार्ड व्यू को फ्रेम लेआउट द्वारा बढ़ाया जाता है और इसका उपयोग कार्ड तरीके से आइटम दिखाने के लिए किया जाता है। यह पूर्वनिर्धारित टैग के रूप में त्रिज्या और छाया का समर्थन करता है।
यह उदाहरण दर्शाता है कि उम्र के साथ छात्र का नाम प्रदर्शित करने वाला एक सुंदर छात्र रिकॉर्ड ऐप बनाकर कार्ड दृश्य के साथ रीसाइक्लर व्यू में एनिमेशन को कैसे एकीकृत किया जाए।
चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।
चरण 2 - बिल्ड.ग्रेड खोलें और रिसाइकलर व्यू और कार्ड व्यू लाइब्रेरी निर्भरताएं जोड़ें।
<पूर्व>प्लगइन लागू करें:'com.android.application'android {compileSdkVersion 28 defaultConfig { applicationId "com.example.andy.tutorialspoint" minSdkVersion 19 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner " } बिल्डटाइप्स {रिलीज {minifyEnabled false proguardFiles getDefaultProguardFile ('proguard-android.txt'), 'proguard-rules.pro'} }}निर्भरता {कार्यान्वयन fileTree(dir:'libs', शामिल हैं:['*.jar'] ) कार्यान्वयन 'com.android.support:appcompat-v7:28.0.0' कार्यान्वयन 'com.android.support:design:28.0.0' कार्यान्वयन 'com.android.support.constraint:constraint-layout:1.1.3' कार्यान्वयन 'com.android.support:cardview-v7:28.0.0' कार्यान्वयन 'com.android.support:recyclerview-v7:28.0.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner :1.0.2' androidT estImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'}चरण 3 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।
उपरोक्त कोड में हमने सापेक्ष पैरेंट लेआउट के रूप में विंडो मैनेजर में रिसाइकलर व्यू जोड़ा है।
चरण 4 - निम्न कोड को src/MainActivity.java
में जोड़ें <पूर्व>पैकेज com.example.andy.tutorialspoint;import android.annotation.TargetApi;import android.os.Build;import android.os.Bundle;import android.support.annotation.RequiresApi;import android.support.v7.app .AppCompatActivity; आयात android.support.v7.widget.DividerItemDecoration; आयात android.support.v7.widget.GridLayoutManager;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android. widget.LinearLayout;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;सार्वजनिक वर्ग MainActivity AppCompatActivity का विस्तार करता है {निजी RecyclerView recyclerView; निजी छात्र अनुकूलक छात्र अनुकूलक; निजी सूचीउपरोक्त कोड में हमने रिसाइकलर व्यू और स्टूडेंट एडॉप्टर को जोड़ा है। उस छात्र एडाप्टर में हमने छात्रडेटालिस्ट को सरणी सूची के रूप में पास कर दिया है। छात्र डेटा सूची में छात्र और उम्र का नाम होता है।
रिसाइकलर व्यू आइटम की तुलना करने के लिए हमने नीचे दिखाए गए अनुसार संग्रह ढांचे और सॉर्ट विधि का उपयोग किया है -
Collections.sort(studentDataList, new Comparator() { @Override public int तुलना (studentData o1, studentData o2) {वापसी o1.name.compareTo(o2.name); }});
उपरोक्त कोड में हम नाम का उपयोग करके तत्वों की तुलना कर रहे हैं।
चरण 5 - संशोधित फ़ाइल src/StudentAdapter.java की सामग्री निम्नलिखित है।
पैकेज com.example.andy.tutorialspoint;import android.content.Context;import android.graphics.Color;import android.support.annotation.NonNull;import android.support.v7.widget.RecyclerView;import android.view .LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.animation.AlphaAnimation;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.LinearLayout;आयात android.widget.TextView;import java.util.List;import java.util.Random;class StudentAdapter RecyclerView.Adapter का विस्तार करता है { List StudentDataList; प्रसंग संदर्भ; निजी इंट अंतिम स्थिति =-1; सार्वजनिक छात्र एडाप्टर (छात्रडेटा सूची, संदर्भ संदर्भ सूचीबद्ध करें) {this.studentDataList=studentDataList; यह.संदर्भ =संदर्भ; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { देखें itemView =LayoutInflater.from(viewGroup.getContext()) .inflate(R.layout.student_list_row, viewGroup, false); नया MyViewHolder (आइटम व्यू) लौटाएं; } @Override सार्वजनिक शून्य onBindViewHolder(MyViewHolder viewHolder, int i) { studentData data=studentDataList.get(i); रैंडम रैंड =नया रैंडम (); int currentColor =Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); viewHolder.parent.setBackgroundColor (currentColor); viewHolder.name.setText (data.name); viewHolder.age.setText(String.valueOf(data.age)); सेटएनीमेशन (viewHolder.parent, i); } निजी शून्य सेटएनीमेशन (देखें व्यू टूएनिमेट, इंट पोजीशन) {// यदि बाध्य दृश्य पहले स्क्रीन पर प्रदर्शित नहीं किया गया था, तो यह एनिमेटेड है अगर (स्थिति> अंतिम स्थिति) {एनिमेशन एनीमेशन =एनिमेशन यूटिल्स। लोडएनीमेशन (संदर्भ, एंड्रॉइड.आर.एनिम। स्लाइड_इन_लेफ्ट); viewToAnimate.startAnimation (एनीमेशन); अंतिम स्थिति =स्थिति; } } @Override सार्वजनिक int getItemCount () {वापसी studentDataList.size (); } वर्ग MyViewHolder RecyclerView.ViewHolder को बढ़ाता है { TextView नाम, आयु; रैखिक लेआउट माता-पिता; सार्वजनिक MyViewHolder (आइटम व्यू देखें) {सुपर (आइटम व्यू); पैरेंट =itemView.findViewById (R.id.parent); नाम =itemView.findViewById (R.id.name); आयु =itemView.findViewById (R.id.age); } }}पूर्व>एडेप्टर वर्ग में, हमारे पास नीचे दिखाए गए चार तरीके हैं -
-
ऑनक्रिएट व्यूहोल्डर () :- इसका उपयोग व्यू होल्डर बनाने के लिए किया जाता है और यह एक व्यू देता है।
-
onBindViewHolder() - यह बनाए गए व्यू होल्डर के साथ जुड़ने वाला है।
-
getItemCount () - इसमें सूची का आकार होता है।
-
MyViewHolder वर्ग - यह व्यू होल्डर इनर क्लास है जिसे RecyclerView.ViewHolder
. द्वारा बढ़ाया गया है
रिसाइकलर व्यू आइटम के लिए रैंडम बैकग्राउंड सेट करने के लिए, हमने रैंडम क्लास (जो कि एंड्रॉइड में पूर्वनिर्धारित क्लास है) का उपयोग करके रैंडम कलर जेनरेट किया है और नीचे दिखाए गए अनुसार व्यू आइटम के पैरेंट में रंग जोड़ा है -
रैंडम rnd =नया रैंडम (); int currentColor =Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));viewHolder.parent.setBackgroundColor(currentColor);
एडेप्टर में हमने सेटएनीमेशन () का उपयोग किया है, उस विधि में हमने पास किया है, चाइल्ड आइटम के पैरेंट और उसकी स्थिति जैसा कि नीचे दिखाया गया है -
सेटएनीमेशन(viewHolder.parent, i);
उपरोक्त विधि में viewHolder.parent चाइल्ड आइटम लेआउट में रैखिक लेआउट है और "i" दृश्य की स्थिति है।
निजी शून्य सेटएनीमेशन (देखें व्यू टूएनीमेट, इंट पोजीशन) {// यदि बाउंड व्यू पहले स्क्रीन पर प्रदर्शित नहीं किया गया था, तो यह एनिमेटेड है अगर (स्थिति> अंतिम स्थिति) {एनिमेशन एनीमेशन =एनिमेशन यूटिल्स। लोडएनीमेशन (संदर्भ, एंड्रॉइड। आर। anim.slide_in_left); viewToAnimate.startAnimation (एनीमेशन); अंतिम स्थिति =स्थिति; }}पूर्व>उपरोक्त विधि में हम एनिमेशन यूटिल्स क्लास से एनीमेशन लागू करने की तुलना में (>) से अधिक का उपयोग करके वर्तमान स्थिति की तुलना अंतिम स्थिति से कर रहे हैं।
चरण 6 - xml res/layout/student_list_row.xml की संशोधित सामग्री निम्नलिखित है।
उपरोक्त सूची आइटम दृश्य में हमने कार्ड दृश्य के अंदर नाम और आयु के लिए दो टेक्स्ट दृश्य बनाए हैं। कार्ड दृश्य में पूर्व परिभाषित कोने की त्रिज्या और छाया गुण होते हैं। इसलिए हमने कार्डव्यू के साथ कॉर्नर रेडियस का इस्तेमाल किया है।
चरण 7 - संशोधित फ़ाइल src/ studentData.java की सामग्री निम्नलिखित है।
पैकेज com.example.andy.tutorialspoint;class studentData { String name; पूर्ण आयु; सार्वजनिक छात्रडेटा (स्ट्रिंग नाम, अंतर आयु) { यह नाम =नाम; यह उम्र =उम्र; }}पूर्व>उपरोक्त कोड में छात्र डेटा ऑब्जेक्ट के बारे में सूचित करता है। आइए अपना एप्लिकेशन चलाने का प्रयास करें। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक खोलें और टूलबार से रन आइकन पर क्लिक करें। एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा -
अब नीचे स्क्रॉल करके रीसाइक्लरव्यू पर जाएं, यह नीचे दिखाए अनुसार परिणाम दिखाएगा -
अब अंतिम तत्व देखें, यह एनिमेशन के साथ लोड हो रहा है। नीचे दिखाए गए अनुसार अधिक संदर्भ नमूने उपलब्ध हैं -