उदाहरण में आने से पहले, हमें पता होना चाहिए कि android में Recycler view क्या है। रिसाइकलर व्यू सूची दृश्य का अधिक उन्नत संस्करण है और यह व्यू होल्डर डिजाइन पैटर्न के आधार पर काम करता है। पुनर्चक्रण दृश्य का उपयोग करके हम ग्रिड और वस्तुओं की सूची दिखा सकते हैं।
यह उदाहरण दिखाता है कि कैसे एक सुंदर छात्र रिकॉर्ड ऐप बनाकर RecyclerView में RecyclerView में शीर्ष स्क्रॉल करें जो उम्र के साथ छात्र का नाम प्रदर्शित करता है।
चरण 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' androidTestImplementation 'co m.android.support.test.espresso:espresso-core:3.0.2'}चरण 3 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।
उपरोक्त कोड में हमने सापेक्ष पैरेंट लेआउट के रूप में विंडो मैनेजर में रिसाइकलर व्यू जोड़ा है और फ्लोटिंगएक्शनबटन जोड़ें। FloatingActionButton CoordinatorLayout का समर्थन करता है। इसलिए हमने पैरेंट लेआउट का इस्तेमाल किया है, वह है CoordinatorLayout. जब आप FloatingActionButton पर क्लिक करते हैं, तो यह शीर्ष स्थान पर स्क्रॉल करेगा।
चरण 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.design.widget .FloatingActionButton;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.DividerItemDecoration;import android.support.v7.widget.GridLayoutManager;import android.support.v7.widget.LinearLayoutManager;import android. support.v7.widget.RecyclerView;import android.view.View;import android.widget.Button;import android.widget.LinearLayout;import android.widget.Toast;import java.util.ArrayList;import java.util.Collections; जावा आयात करें। निजी छात्र अनुकूलक छात्र अनुकूलक; निजी सूची छात्रडेटालिस्ट =नया ऐरेलिस्ट <> (); @TargetApi(Build.VERSION_CODES.O) @Override संरक्षित शून्य onCreate (बंडल सेव्ड इंस्टेंसस्टेट) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FloatingActionButton moveTop =findViewById(R.id.top); recyclerView =findViewById (R.id.recycler_view); छात्र एडाप्टर =नया छात्र एडाप्टर (छात्रडेटा सूची, मुख्य गतिविधि। यह); RecyclerView.LayoutManager प्रबंधक =नया LinearLayoutManager (यह); recyclerView.setLayoutManager (प्रबंधक); recyclerView.setAdapter (छात्र एडेप्टर); छात्रडेटा तैयार (); moveTop.setOnClickListener (नया दृश्य। OnClickListener () {@ ओवरराइड सार्वजनिक शून्य पर क्लिक करें (देखें v) {recyclerView.smoothScrollToPosition (0);}}); } @RequiresApi(api =Build.VERSION_CODES.N) निजी शून्य StudentDataPrepare() {छात्रडेटा डेटा =नया छात्रडेटा ("sai", 25); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("साई राज", 25); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("रघु", 20); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("राज", 28); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("अमर", 15); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("बापू", 19); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("चंद्र", 52); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("डेरज", 30); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("ईशांत", 28); छात्रडेटा सूची। जोड़ें (डेटा); Collections.sort(studentDataList, new Comparator() {@Override public int तुलना (studentData o1, studentData o2) {वापसी o1.name.compareTo(o2.name); }}); }}पूर्व>उपरोक्त कोड में हमने रिसाइकलर व्यू और स्टूडेंट एडॉप्टर को जोड़ा है। उस छात्र एडाप्टर में हमने छात्रडेटालिस्ट को सरणी सूची के रूप में पास कर दिया है। छात्र डेटा सूची में छात्र और उम्र का नाम होता है।
हमने 0 वें स्थान को स्क्रॉल करने के लिए SmoothScrollToPosition() का उपयोग किया है, हम अपनी आवश्यकता के अनुसार कोई भी स्थिति निर्दिष्ट कर सकते हैं। इस उदाहरण में, यह नीचे दिखाए गए अनुसार शून्य (शीर्ष) स्थिति को स्क्रॉल करने जा रहा है -
moveTop.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {recyclerView.smoothScrollToPosition(0); }});चरण 5 - संशोधित फ़ाइल src/StudentAdapter.java की सामग्री निम्नलिखित है। पैकेज com.example.andy.tutorialspoint;
पैकेज com.example.andy.tutorialspoint;import android.graphics.Color;import android.support.annotation.NonNull;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view .व्यू; इंपोर्ट android.view.ViewGroup; इंपोर्ट android.widget.LinearLayout;import android.widget.TextView;import java.util.List;import java.util.Random;class StudentAdapter RecyclerView.Adapter का विस्तार करता है { List studentDataList; सार्वजनिक छात्र एडाप्टर (छात्रडेटा सूची सूचीबद्ध करें) {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) {छात्रडेटा डेटा =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)); } @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);
चरण 6 - xml res/layout/student_list_row.xml की संशोधित सामग्री निम्नलिखित है।
उपरोक्त सूची आइटम दृश्य में हमने कार्डव्यू के अंदर नाम और उम्र के लिए दो टेक्स्ट व्यू बनाए हैं। कार्ड दृश्य में पूर्व परिभाषित कोने की त्रिज्या और छाया गुण होते हैं। इसलिए हमने कार्ड व्यू के साथ कॉर्नर रेडियस का इस्तेमाल किया है।
चरण 7 - संशोधित फ़ाइल src/studentData.java की सामग्री निम्नलिखित है। पैकेज com.example.andy.tutorialspoint;
कक्षा छात्रडेटा {स्ट्रिंग नाम; पूर्ण आयु; सार्वजनिक छात्रडेटा (स्ट्रिंग नाम, अंतर आयु) { यह नाम =नाम; यह उम्र =उम्र; }}पूर्व>उपरोक्त कोड में छात्र डेटा ऑब्जेक्ट के बारे में सूचित करता है। आइए अपना एप्लिकेशन चलाने का प्रयास करें। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक खोलें और टूलबार से रन आइकन पर क्लिक करें। एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा -
अब घड़ी पीले बटन को रीसाइक्लरव्यू के शीर्ष पर स्क्रॉल करें, यह नीचे दिखाए अनुसार परिणाम दिखाएगा -