डाइनैमिक सूची को पसंद के मुताबिक बनाना Android Jetpack का हिस्सा है.
अपनी पसंद के मुताबिक
RecyclerView
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
ऑब्जेक्ट सबमिट कर सकते हैं. इसमें बताई गई स्टैंडर्ड क्लास
इसकी मदद से डाइनैमिक सूचियां बनाएं
RecyclerView में वे सभी सुविधाएं मौजूद हैं जिनकी ज़्यादातर डेवलपर को ज़रूरत होती है. तय सीमा में
कई मामलों में, आपको प्रत्येक व्यू होल्डर के लिए केवल दृश्य डिज़ाइन करना होगा और
कोड का इस्तेमाल करें, ताकि उन व्यू को सही डेटा के साथ अपडेट किया जा सके. हालांकि, अगर आपके ऐप्लिकेशन में
ज़रूरतों के हिसाब से बनाई गई है, तो आप कई तरीकों से मानक व्यवहार में बदलाव कर सकते हैं.
इस दस्तावेज़ में, पसंद के मुताबिक किए जा सकने वाले कुछ विकल्पों के बारे में बताया गया है.
लेआउट में बदलाव करें
RecyclerView
किसी व्यक्ति की जगह तय करने के लिए, लेआउट मैनेजर का इस्तेमाल करता है
आइटम पर जाएं और यह तय करने के लिए कि ऐसे आइटम व्यू का फिर से इस्तेमाल कब किया जाए जो अब नहीं हैं
उपयोगकर्ता को दिखता है. दोबारा इस्तेमाल या रीसाइकल करने के लिए—व्यू, लेआउट
मैनेजर, अडैप्टर को व्यू के कॉन्टेंट को
डेटासेट से अलग है. इस तरीके से व्यू को रीसाइकल करने से परफ़ॉर्मेंस बेहतर होती है
और गै़र-ज़रूरी व्यू बनाने या परफ़ॉर्मेंस
महंगा
findViewById()
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
खोजें. Android Support Library में तीन स्टैंडर्ड लेआउट मैनेजर,
जिसमें से कई कस्टमाइज़ेशन विकल्प उपलब्ध हैं:
LinearLayoutManager
: आइटम को एक डाइमेंशन वाली सूची में व्यवस्थित करता है. इसका इस्तेमाल करकेRecyclerView
मेंLinearLayoutManager
से ऑफ़र मिलते हैं फ़ंक्शन के साथ-साथListView
लेआउट.GridLayoutManager
: आइटम को द्वि-आयामी ग्रिड में व्यवस्थित करता है, जैसे कि चेकरबोर्ड.RecyclerView
का इस्तेमाल इसके साथ किया जा रहा हैGridLayoutManager
एक जैसी सुविधाएं देता हैGridView
लेआउट.StaggeredGridLayoutManager
: आइटम को दो-डाइमेंशन वाले ग्रिड में व्यवस्थित करता है. साथ ही, हर कॉलम को थोड़ा ऑफ़सेट करता है से पहले वाली तस्वीर, जैसे कि अमेरिकी झंडे पर तारे.
अगर ये लेआउट मैनेजर आपकी ज़रूरतों के मुताबिक नहीं हैं, तो
अवधि को बढ़ाना
RecyclerView.LayoutManager
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
ऐब्सट्रैक्ट क्लास.
आइटम के ऐनिमेशन जोड़ें
जब भी कोई आइटम बदलता है, तो RecyclerView
एक ऐनिलेटर का इस्तेमाल करता है
काफ़ी कम कर सकते हैं. यह ऐनिमेटर एक ऐसा ऑब्जेक्ट है जो ऐब्स्ट्रैक्ट को बड़ा करता है
RecyclerView.ItemAnimator
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
क्लास. डिफ़ॉल्ट रूप से, RecyclerView
DefaultItemAnimator
डालें. अगर आपको पसंद के मुताबिक बनाए गए ऐनिमेशन देने हैं, तो
RecyclerView.ItemAnimator
.
सूची-आइटम चुनना चालू करें
कॉन्टेंट बनाने
recyclerview-selection
लाइब्रेरी से उपयोगकर्ता, टच का इस्तेमाल करके RecyclerView
सूची में आइटम चुन सकते हैं
या माउस इनपुट पर क्लिक करें. इससे आपको किसी
चुना गया आइटम. आपके पास, चुने गए विकल्पों को कंट्रोल करने वाली नीतियों का भी कंट्रोल रखने का विकल्प है
व्यवहार, जैसे कि कौनसे आइटम चुने जा सकते हैं और कितने आइटम
चुने जाएंगे.
RecyclerView
इंस्टेंस में चुनने का विकल्प जोड़ने के लिए, यह तरीका अपनाएं
यह तरीका अपनाएं:
- यह तय करें कि किस तरह की चुनने वाली कुंजी का इस्तेमाल करना है. इसके बाद,
ItemKeyProvider
.चुने गए आइटम की पहचान करने के लिए, इन तीन मुख्य टाइप का इस्तेमाल किया जा सकता है:
Parcelable
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है सब-क्लास हैं, जैसेUri
String
Long
कुंजी के टाइप के बारे में ज़्यादा जानने के लिए, देखें
SelectionTracker.Builder
. - लागू करना
ItemDetailsLookup
. - आइटम अपडेट करें
View
ऑब्जेक्ट मेंRecyclerView
से पता चलता है कि उपयोगकर्ता, चेकबॉक्स से चुने हुए का निशान हटा देता है.चयन लाइब्रेरी इसके लिए डिफ़ॉल्ट विज़ुअल सजावट नहीं देती है चुने गए आइटम. लागू करते समय यह जानकारी दें
onBindViewHolder()
. हमारा सुझाव है कि आप यह तरीका अपनाएं:onBindViewHolder()
में कॉल करेंsetActivated()
—नहींsetSelected()
—चालूView
ऑब्जेक्ट,true
याfalse
, यह इस बात पर निर्भर करता है कि आइटम चुना गया है.- चालू होने की स्थिति दिखाने के लिए व्यू की स्टाइल अपडेट करें. बुध इसका इस्तेमाल करने की सलाह दी जाती है रंग की स्थिति सूची संसाधन का इस्तेमाल करें.
ActionMode
का इस्तेमाल करें उपयोगकर्ता को उसके चुने गए विकल्प पर कार्रवाई करने के लिए टूल उपलब्ध कराएं.- कोई भी दूसरी कार्रवाई करें.
SelectionTracker.Builder
के साथ सभी डेटा इकट्ठा करें.- इसमें चुने गए आइटम को इसमें शामिल करें: गतिविधि लाइफ़साइकल इवेंट के बारे में ज़्यादा जानें.
ItemDetailsLookup
की मदद से, चुनी गई लाइब्रेरी को ऐक्सेस किया जा सकता है
RecyclerView
आइटम के बारे में जानकारी
MotionEvent
.
यह असल में
ItemDetails
वे इंस्टेंस जिनका बैक अप लिया जाता है या जिन्हें
RecyclerView.ViewHolder
इंस्टेंस.
रजिस्टर करें
SelectionTracker.SelectionObserver
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
ताकि चुने गए विकल्प में बदलाव होने पर आपको सूचना दी जा सके. जब पहली बार कोई चुनाव बनाया जाता है,
उपयोगकर्ता को इसे प्रज़ेंट करने और उपलब्ध कराने के लिए, ActionMode
शुरू करें
कार्रवाइयां तय की जा सकती हैं. उदाहरण के लिए, आप
डेटा मिटाने के लिए, ActionMode
बार और बार में मौजूद बैक ऐरो को कनेक्ट करें
चुनें. कोई चयन खाली हो जाने पर—अगर उपयोगकर्ता फ़ाइल को साफ़ कर देता है
आखिरी बार चुनना—कार्रवाई मोड खत्म करना.
इवेंट प्रोसेस करने वाली पाइपलाइन के आखिर में, लाइब्रेरी यह तय कर सकती है कि
कि उपयोगकर्ता किसी आइटम पर टैप करके उसे चालू करने की कोशिश कर रहा है या
किसी आइटम या चयनित आइटम के सेट को खींचने का प्रयास कर रहा है. इन पर अपनी प्रतिक्रिया दें
व्याख्या करने के लिए, सही लिसनर को रजिस्टर करें. ज़्यादा के लिए
जानकारी, देखें
SelectionTracker.Builder
.
नीचे दिए गए उदाहरण में इन हिस्सों को एक साथ रखने का तरीका बताया गया है:
Kotlin
var tracker = SelectionTracker.Builder( "my-selection-id", recyclerView, StableIdKeyProvider(recyclerView), MyDetailsLookup(recyclerView), StorageStrategy.createLongStorage()) .withOnItemActivatedListener(myItemActivatedListener) .build()
Java
SelectionTracker tracker = new SelectionTracker.Builder<>( "my-selection-id", recyclerView, new StableIdKeyProvider(recyclerView), new MyDetailsLookup(recyclerView), StorageStrategy.createLongStorage()) .withOnItemActivatedListener(myItemActivatedListener) .build();
किसी
SelectionTracker
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
उदाहरण के लिए, आपके ऐप्लिकेशन को
RecyclerView.Adapter
जिसे आप RecyclerView
को शुरू करने के लिए इस्तेमाल करते हैं
SelectionTracker.Builder
. इस कारण से,
SelectionTracker
इंस्टेंस, इसे अपने
RecyclerView.Adapter
. ऐसा न करने पर, आप किसी आइटम की
स्थिति को onBindViewHolder()
तरीके से चुना गया है.
गतिविधि के लाइफ़साइकल इवेंट में चुने गए विकल्प की स्थिति को बनाए रखने के लिए, आपका ऐप्लिकेशन
को चयन ट्रैकर के
onSaveInstanceState()
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
और
onRestoreInstanceState()
ऐक्टिविटी के तरीके
onSaveInstanceState()
और
onRestoreInstanceState()
विधियों का भी इस्तेमाल किया जा सकता है. आपके ऐप्लिकेशन को
SelectionTracker.Builder
कंस्ट्रक्टर. यह आईडी ज़रूरी है, क्योंकि
किसी ऐक्टिविटी या फ़्रैगमेंट में एक से ज़्यादा अलग-अलग, चुनी जा सकने वाली सूची हो सकती है,
इन सभी को अपनी सेव की गई स्थिति में बनाए रखना ज़रूरी है.
अन्य संसाधन
ज़्यादा जानकारी के लिए, ये रेफ़रंस देखें.
- सनफ़्लावर
डेमो ऐप्लिकेशन, जो
RecyclerView
का इस्तेमाल करता है. - इस्तेमाल करें स्क्रोल की जा सकने वाली सूची कोडलैब दिखाने के लिए, RecyclerView का इस्तेमाल करना.
- Android Kotlin की बुनियादी बातें: RecyclerView की बुनियादी बातें कोडलैब.