जैसा कि पहले ही उत्तर दिया जा चुका है, सबसे आसान उपाय यह है कि अपनी RecyclerView
पंक्ति की पृष्ठभूमि के रूप में निम्न में से कोई एक जोड़ें :
android:background="?android:attr/selectableItemBackground"
android:background="?attr/selectableItemBackground"
हालाँकि यदि आप अनुभव कर रहे हैं समस्याओं का कर इस पद्धति से या यदि आप रंगों पर बेहतर नियंत्रण चाहते हैं, तो आप निम्न कार्य कर सकते हैं।
कस्टम लहर प्रभाव
यह उत्तर इस सरल Android RecyclerView उदाहरण के साथ शुरू हो रहा है । यह निम्न छवि की तरह दिखाई देगा।
प्री एपीआई 21 उपकरणों के लिए चयनकर्ता जोड़ें
एपीआई 21 (एंड्रॉइड 5.0 लॉलीपॉप) से पहले, एक RecyclerView
आइटम पर क्लिक करने से बस उसकी पृष्ठभूमि का रंग बदल गया (कोई लहर प्रभाव नहीं)। यही हम करने जा रहे हैं। यदि आपके पास अभी भी उन उपकरणों के साथ उपयोगकर्ता हैं, तो उनका उपयोग उस व्यवहार के लिए किया जाता है, इसलिए हम उनके बारे में बहुत अधिक चिंता करने वाले नहीं हैं। (बेशक, यदि आप वास्तव में उनके लिए लहर प्रभाव चाहते हैं, तो भी, आप एक कस्टम लाइब्रेरी का उपयोग कर सकते हैं ।)
अपने res/drawable
फ़ोल्डर पर राइट क्लिक करें और नया> ड्रा करने योग्य संसाधन फ़ाइल चुनें । इसे कहते हैंcustom_ripple
। ठीक क्लिक करें और निम्नलिखित कोड में पेस्ट करें।
custom_ripple.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="@color/colorAccent" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent" />
</shape>
</item>
</selector>
मैंनें इस्तेमाल किया colorAccent
दबाए गए राज्य के लिए हाइलाइट रंग के रूप में क्योंकि यह पहले से ही उपलब्ध था, लेकिन आप जो भी रंग चाहते हैं उसे परिभाषित कर सकते हैं।
एपीआई 21+ उपकरणों के लिए तरंग प्रभाव जोड़ें
अपने res/drawable
फ़ोल्डर पर राइट क्लिक करें और नया> ड्रा करने योग्य संसाधन फ़ाइल चुनें । custom_ripple
फिर से बुलाओ । ठीक है पर क्लिक न करें, फिर भी इस बार, हालांकि। से उपलब्ध क्वालिफायर सूची चुनें संस्करण , उसके बाद >> बटन और लिखने 21
के लिए प्लेटफ़ॉर्म API स्तर । अब OK पर क्लिक करें और निम्नलिखित कोड में पेस्ट करें।
V21 / custom_ripple.xml
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/colorAccent">
<item
android:id="@android:id/mask"
android:drawable="@android:color/white" />
</ripple>
फिर से, मैंने colorAccent
रिपल रंग के लिए उपयोग किया क्योंकि यह उपलब्ध था, लेकिन आप जो भी रंग चाहते हैं उसका उपयोग कर सकते हैं। मुखौटा लहर को सिर्फ पंक्ति लेआउट तक सीमित करता है। मुखौटा का रंग स्पष्ट रूप से मायने नहीं रखता है इसलिए मैंने सिर्फ एक अपारदर्शी सफेद का उपयोग किया है।
पृष्ठभूमि के रूप में सेट करें
अपने RecyclerView आइटम के रूट लेआउट में, उस पृष्ठभूमि को सेट करें जिसे हमने बनाया है।
android:background="@drawable/custom_ripple"
हमारे द्वारा शुरू की गई उदाहरण परियोजना में , यह इस तरह दिखता है:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@drawable/custom_ripple"
android:padding="10dp">
<TextView
android:id="@+id/tvAnimalName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"/>
</LinearLayout>
ख़त्म होना
बस। अब आपको अपना प्रोजेक्ट चलाने में सक्षम होना चाहिए। इस उत्तर और मदद के लिए इस YouTube वीडियो के लिए धन्यवाद ।
CardView
प्रश्न में एक होने के कुछ पहलू हैं जो इस सामान्य प्रश्न से संबंधित नहीं हैं।