ইতিমধ্যে উত্তর হিসাবে, সহজ সমাধানটি হ'ল আপনার RecyclerView
সারির ব্যাকগ্রাউন্ড হিসাবে নিম্নলিখিতগুলির মধ্যে একটি যুক্ত করা :
android:background="?android:attr/selectableItemBackground"
android:background="?attr/selectableItemBackground"
তবে আপনি যদি এই পদ্ধতিটি নিয়ে সমস্যায় পড়ে থাকেন বা আপনি যদি রঙগুলির উপর সূক্ষ্ম নিয়ন্ত্রণ চান, তবে আপনি নিম্নলিখিতটি করতে পারেন।
কাস্টম রিপল প্রভাব
এই উত্তরটি এই সাধারণ অ্যান্ড্রয়েড রিসাইকেলার ভিউ উদাহরণ দিয়ে শুরু হচ্ছে । এটি নীচের চিত্রের মতো দেখাবে।
প্রাক এপিআই 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
চাপযুক্ত রাজ্যের হাইলাইট রঙ হিসাবে ব্যবহার করেছি কারণ এটি ইতিমধ্যে উপলব্ধ ছিল, তবে আপনি যা রঙ চান তা নির্ধারণ করতে পারেন।
API 21+ ডিভাইসের জন্য রিপল এফেক্ট যুক্ত করুন
আপনার res/drawable
ফোল্ডারে ডান ক্লিক করুন এবং নতুন> ড্রয়যোগ্য সংস্থান ফাইলটি চয়ন করুন । custom_ripple
আবার ফোন করুন । ঠিক আছে, ক্লিক করুন না। উপলভ্য যোগ্যতা তালিকা থেকে সংস্করণ চয়ন করুন, তারপরে >> >> বোতামটি ক্লিক করুন এবং প্ল্যাটফর্ম এপিআই স্তরের21
জন্য লিখুন । এখন ওকে ক্লিক করুন এবং নীচের কোডটিতে পেস্ট করুন।
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
রিপল রঙের জন্য ব্যবহার করেছি কারণ এটি উপলব্ধ ছিল, তবে আপনি যা রঙ চান তা ব্যবহার করতে পারেন। মুখোশটি কেবল সারি বিন্যাসে রিপল প্রভাবকে সীমাবদ্ধ করে। মুখোশের রঙ দৃশ্যত কোনও বিষয় নয় তাই আমি কেবল একটি অস্বচ্ছ সাদা ব্যবহার করেছি।
পটভূমি হিসাবে সেট করুন
আপনার পুনর্ব্যবহারযোগ্য আইটেমের মূল বিন্যাসে, আমরা যে কাস্টম রিপলটি তৈরি করেছি তাতে ব্যাকগ্রাউন্ড সেট করুন।
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
এই সাধারণ প্রশ্নের তুলনায় এই প্রশ্নটিতে একটি থাকার কিছু বিষয় রয়েছে ।