Seperti yang sudah dijawab, solusi paling sederhana adalah dengan menambahkan salah satu dari berikut ini sebagai RecyclerView
latar belakang baris Anda :
android:background="?android:attr/selectableItemBackground"
android:background="?attr/selectableItemBackground"
Namun jika Anda mengalami masalah dengan metode ini atau jika Anda ingin kontrol yang lebih baik atas warna, maka Anda dapat melakukan hal berikut.
Efek Riak Kustom
Jawaban ini dimulai dengan contoh RecyclerView Android sederhana ini . Ini akan terlihat seperti gambar berikut.
Tambahkan pemilih untuk perangkat pra API 21
Sebelum API 21 (Android 5.0 Lollipop), mengklik RecyclerView
item baru saja mengubah warna latar belakangnya (tanpa efek riak). Itulah yang akan kami lakukan juga. Jika Anda masih memiliki pengguna dengan perangkat tersebut, mereka terbiasa dengan perilaku tersebut, jadi kami tidak akan terlalu mengkhawatirkan mereka. (Tentu saja, jika Anda juga benar-benar menginginkan efek riak untuk mereka, Anda dapat menggunakan pustaka khusus .)
Klik kanan res/drawable
folder Anda dan pilih New> Drawable resource file . Sebut saja custom_ripple
. Klik OK dan tempel kode berikut.
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>
Saya menggunakan colorAccent
warna highlight untuk keadaan yang ditekan karena sudah tersedia, tetapi Anda dapat menentukan warna apa pun yang Anda inginkan.
Tambahkan Efek Ripple untuk perangkat API 21+
Klik kanan res/drawable
folder Anda dan pilih New> Drawable resource file . Sebut custom_ripple
lagi. Namun, jangan klik OK, kali ini. Dari daftar Qualifier yang tersedia pilih Version , lalu klik tombol >> dan tulis 21
untuk level API Platform . Sekarang klik OK dan tempelkan kode berikut.
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>
Sekali lagi, saya menggunakan colorAccent
warna riak karena itu tersedia, tetapi Anda dapat menggunakan warna apa pun yang Anda inginkan. Topeng membatasi efek riak hanya pada tata letak baris. Warna topeng tampaknya tidak masalah jadi saya hanya menggunakan putih buram.
Tetapkan sebagai latar belakang
Dalam tata letak akar item RecyclerView Anda, setel latar belakang ke riak khusus yang kita buat.
android:background="@drawable/custom_ripple"
Dalam proyek contoh yang kami mulai, terlihat seperti ini:
<?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>
Jadi
Itu dia. Anda seharusnya dapat menjalankan proyek Anda sekarang. Terima kasih atas jawaban ini dan video YouTube untuk bantuan.
CardView
dalam pertanyaan itu yang tidak berkaitan dengan pertanyaan yang lebih umum ini.