Saya mencoba menambahkan Efek Ripple ke item RecyclerView. Saya telah mencari online, tetapi tidak dapat menemukan apa yang saya butuhkan. Saya berasumsi itu harus menjadi efek khusus. Saya telah mencoba atribut android: background ke RecyclerView itu sendiri dan menyetelnya ke "? Android: selectableItemBackground" tetapi tidak berhasil .:
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:clickable="true"
android:background="?android:selectableItemBackground"
android:id="@+id/recyclerView"
android:layout_below="@+id/tool_bar"/>
Ini adalah RecyclerView yang saya coba tambahkan efeknya:
android
android-animation
android-recyclerview
Georgi Koemdzhiev
sumber
sumber
CardView
dalam pertanyaan itu yang tidak berkaitan dengan pertanyaan yang lebih umum ini.Jawaban:
Saya pikir. Satu-satunya hal yang harus saya lakukan adalah menambahkan atribut ini:
ke elemen root tata letak tempat adaptor RecyclerView saya mengembang seperti itu:
Hasil:
Jika Anda masih tidak dapat melihat efek riak, tambahkan juga garis-garis ini ke elemen akar tata letak.
sumber
android:foreground="?android:attr/selectableItemBackground"
android:clickable="true"
juga agar ini berfungsiSeperti 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 sajacustom_ripple
. Klik OK dan tempel kode berikut.custom_ripple.xml
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 . Sebutcustom_ripple
lagi. Namun, jangan klik OK, kali ini. Dari daftar Qualifier yang tersedia pilih Version , lalu klik tombol >> dan tulis21
untuk level API Platform . Sekarang klik OK dan tempelkan kode berikut.v21 / custom_ripple.xml
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.
Dalam proyek contoh yang kami mulai, terlihat seperti ini:
Jadi
Itu dia. Anda seharusnya dapat menjalankan proyek Anda sekarang. Terima kasih atas jawaban ini dan video YouTube untuk bantuan.
sumber
Saya pikir ada satu detail kecil yang terlewat.
Jika Anda masih tidak mendapatkan efek riak setelah menambahkan,
android:background="?android:attr/selectableItemBackground"
coba tambahkan baris berikut ini di root tata letak.Ini akan memastikan bahwa tampilan dapat diklik dan akan mengaktifkan efek riak dengan atribut latar belakang yang disebutkan di atas
sumber
tambahkan baris ini di tampilan root adaptor xml Anda
sumber
Pendekatan sederhana dan khusus adalah menyetel tema tampilan seperti yang diuraikan di sini .
some_view.xml
some_style.xml
Penerapan kustom lainnya dapat ditemukan di sini .
sumber
Menggunakan Gaya Tombol
Ini telah berhasil bagi saya tak terhitung jumlahnya.
Tambahkan Gaya Tombol Tanpa Batas ke elemen akar tata letak Anda. Tidak perlu
focusable
atauclickable
atribut, gaya default merangkum semua itu untuk Anda.sumber