Bagaimana saya bisa memiliki efek riak dalam tata letak linier / relatif sederhana saat menyentuh tata letak?
Saya sudah mencoba mengatur latar belakang tata letak menjadi sesuatu seperti:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight" >
<item android:drawable="@android:color/white"/>
</ripple>
Namun saya hanya melihat latar belakang putih polos dan tidak ada efek riak saat menyentuh tata letak. Apa yang saya lakukan salah?
Edit:
Untuk referensi, ini file xml layout saya:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="250dp"
android:layout_height="250dp"
android:background="@drawable/test"
android:clickable="true">
</RelativeLayout>
<item android:drawable="@android:color/white"/>
bagian tersebut. Jadi saya tidak yakin bagaimana ini seharusnya bekerja jika saya menginginkan warna latar belakang pada tata letak. Meletakkan ini di atas tata letak lain dengan warna latar belakang juga tidak berfungsi!Jawaban:
Setel properti ini pada tata letak Anda (jika tata letak Anda memiliki latar belakang putih / terang default):
Anda tidak memerlukan drawable khusus dalam kasus ini.
Namun, jika tata letak Anda memiliki latar belakang hitam / gelap, Anda harus membuat drawable riak sendiri seperti ini:
Lalu setel drawable riak ini sebagai properti android: background Anda .
Anda dapat melihat banyak contoh jenis riak ini di AOSP: di sini
sumber
background
?Saya menambahkan ini sebagai tambahan jawaban Igor Ganapolsky jika ada yang ingin memiliki tata letak dengan warna berbeda dan juga memiliki efek riak. Anda cukup membuat efek riak di drawable seperti ini:
kemudian berikan itu sebagai latar belakang tata letak Anda atau tombol apa saja seperti yang disebutkan Igor Ganapolsky dalam jawabannya.
sumber
Anda harus mengubah cuplikan kode berikut di widget mana pun (
TextView
/Button
) dan Anda dapat menerapkan Efek Ripple :Dan Anda siap untuk pergi.
sumber
Ternyata ini berfungsi sebagaimana mestinya. Nilai standar Material tema colorControlHighlight adalah
#40ffffff
. Jadi dengan latar belakang putih, ini tidak akan muncul. Mengubah warna sorotan menjadi sesuatu yang lain berfungsi, dan / atau mengubah warna latar belakang objek.Terima kasih semuanya (terutama Alanv karena telah mengarahkan saya ke arah yang benar).
sumber
colorControlHighlight
filestyles.xml
. Tambahkan ke tema kustom Anda misalnya.Atur
android:clickable="true"
tata letak Anda.sumber
Ini adalah contoh untuk mengklik contoh tata letak dengan efek riak:
sumber
Gunakan ripple.xml ini dalam folder Drawable , lalu tetapkan sebagai View's
android: background = "@ drawable / ripple"
android: clickable = "true"
sumber
Cukup tambahkan efek riak default dengan
android:background="?selectableItemBackground"
Suka:
sumber
Masukkan ini ke dalam tata letak Anda:
Catatan: Ada bug dalam dokumentasi API. Ini hanya akan bekerja pada API> = 23
Untuk semua level API gunakan Solusi ini
sumber
Saya mencoba semua jawaban itu dan tidak ada yang berhasil bagi saya, jadi, saya menyelesaikannya dengan menciptakan gaya berikut:
Dan kemudian, saya menerapkan tata letak linier saya:
sumber