Saya telah mencoba untuk mengubah warna Floating Action Button dari Material, tetapi tidak berhasil.
<android.support.design.widget.FloatingActionButton
android:id="@+id/profile_edit_fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_margin="16dp"
android:clickable="true"
android:src="@drawable/ic_mode_edit_white_24dp" />
Saya sudah mencoba menambahkan:
android:background="@color/mycolor"
atau melalui kode:
FloatingActionButton fab = (FloatingActionButton) rootView.findViewById(R.id.profile_edit_fab);
fab.setBackgroundColor(Color.parseColor("#mycolor"));
atau
fab.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#mycolor")));
Tapi tidak satu pun di atas yang berfungsi. Saya juga telah mencoba solusi dalam pertanyaan duplikat yang diusulkan, tetapi tidak satupun yang berfungsi; tombol tetap hijau dan juga menjadi kotak.
PS Akan menyenangkan juga untuk tahu cara menambahkan efek riak, tidak bisa mengerti itu juga.
Jawaban:
Seperti dijelaskan dalam dokumentasi , secara default dibutuhkan warna set di styles.xml atribut colorAccent .
Jika Anda ingin mengubah warna
Seperti @Dantalian disebutkan dalam komentar, jika Anda ingin mengubah warna ikon untuk Design Support Library hingga v22 (inklusif) , Anda dapat menggunakan
Untuk Pustaka Dukungan Desain sejak v23 untuk Anda dapat menggunakan:
Juga dengan
androidX
perpustakaan Anda perlu menetapkan batas 0dp di tata letak xml Anda:sumber
Jawaban Vijet Badigannavar benar tetapi menggunakan
ColorStateList
biasanya rumit dan dia tidak memberi tahu kami bagaimana melakukannya. Karena kita sering fokus pada perubahanView
warna dalam keadaan normal dan ditekan, saya akan menambahkan lebih banyak detail:Jika Anda ingin mengubah
FAB
warna dalam keadaan normal, Anda cukup menulisJika Anda ingin mengubah
FAB
warna dalam keadaan tertekan, terima kasih untuk Perpustakaan Dukungan Desain 22.2.1 , Anda cukup menulisDengan mengatur atribut ini, ketika Anda menekan tombolnya
FAB
, sebuah riak dengan warna Anda akan muncul pada titik sentuh Anda dan terbuka ke seluruh permukaanFAB
. Harap perhatikan bahwa itu tidak akan berubahFAB
warna dalam kondisi normal. Di bawah API 21 (Lollipop), tidak ada efek riak tetapiFAB
warna masih akan berubah saat Anda menekannya.Akhirnya, jika Anda ingin menerapkan efek yang lebih kompleks untuk status, maka Anda harus menggali lebih dalam
ColorStateList
, berikut adalah pertanyaan SO yang membahasnya: Bagaimana cara membuat ColorStateList secara terprogram? .UPDATE: Terima kasih atas komentar @ Kaitlyn. Untuk menghapus goresan FAB menggunakan backgroundTint sebagai warnanya, Anda dapat mengatur
app:borderWidth="0dp"
dalam xml Anda.sumber
app:borderWidth
terprogram? Terima kasihFloatingActionButton
, saya khawatir Anda tidak dapat mengaturnya secara terprogram sekarang karena tidak ada setter untukmBorderWidth
.Seperti yang dicatat Vasil Valchev dalam komentar, ini lebih sederhana daripada yang terlihat, tetapi ada perbedaan halus yang tidak saya perhatikan dalam XML saya.
Perhatikan itu:
dan tidak
sumber
android:backgroundTint=""
berasal dari Api level 21 dan bagian dari Desain Bahan Lollipop dan akan diabaikan di bawah Lollipop. Juga tidak mengubahFAB
warna sepenuhnya karena itu bukan warna solid. Anda harus menggunakan yangapp:
satu untuk membuatnya bekerja.android:color
menyebabkan aplikasi saya mogok, dan itu membuat saya gila! Terima kasih telah menyimpan aplikasi saya dan apa yang tersisa dari kewarasananku ;-)jika Anda mencoba mengubah warna FAB dengan menggunakan aplikasi, ada beberapa masalah. bingkai tombol memiliki warna yang berbeda, jadi apa yang harus Anda lakukan:
dan dalam kode mengatur warna:
sumber
gunakan saja,
jangan gunakan,
sumber
FAB diwarnai berdasarkan pada Anda
colorAccent
.sumber
sumber
Solusi lain mungkin berhasil. Ini adalah pendekatan gorila 10 pon yang memiliki keuntungan diterapkan secara luas dalam kasus ini dan yang serupa:
Styles.xml:
tata letak Anda xml:
sumber
String types not allowed (at 'theme' with value 'AppTheme.FloatingAccentButtonOverlay')
. Mungkin saya kehilangan satu poin dengan styles.xml ....android:theme="@style/AppTheme.FloatingAccentButtonOverlay"
tetapi solutin ini tidak bekerja untuk saya ...Dokumen menyarankan agar dibutuhkan warna @ aksen / aksen. Tapi kita bisa menimpanya dengan menggunakan kode
Ingat juga,
Versi API minimum untuk menggunakan perpustakaan ini adalah 15 sehingga Anda perlu memperbaruinya! jika Anda tidak ingin melakukannya maka Anda perlu menentukan drawable kustom dan menghiasinya!
sumber
Mengubah warna latar belakang tombol Aksi mengambang dengan menggunakan garis di bawah ini
Mengubah warna ikon tombol Aksi mengambang
sumber
Berkat pelengkapan otomatis. Saya beruntung setelah beberapa pukulan dan percobaan:
- atau - (keduanya pada dasarnya adalah hal yang sama)
Ini bekerja untuk saya di API Versi 17 dengan perpustakaan desain 23.1.0.
sumber
Saya mendapat masalah yang sama dan semuanya menjambak rambut saya. Terima kasih untuk ini https://stackoverflow.com/a/35697105/5228412
Apa yang bisa kita lakukan ..
berfungsi dengan baik untuk saya dan berharap untuk orang lain yang akan mencapai di sini.
sumber
Perhatikan bahwa Anda menambahkan warna dalam res / values / color.xml dan sertakan atribut dalam fab Anda
sumber
Dengan Tema Material dan komponen material
FloatingActionButton
secara default dibutuhkan warna yang ditetapkan dalamstyles.xml
atributcolorSecondary
.app:backgroundTint
atribut dalam xml:Kamu bisa menggunakan
fab.setBackgroundTintList();
Anda dapat menyesuaikan gaya Anda menggunakan
<item name="backgroundTint">
atributmaterialThemeOverlay
atribut baru untuk mengganti warna default hanya untuk beberapa komponen:sumber
Pemetaan atribut tema baru untuk Tombol Aksi Terapung dalam materi 1.1.0
Dalam tema aplikasi Anda:
sumber
Saat menggunakan Pengikatan Data, Anda dapat melakukan sesuatu seperti ini:
Saya telah membuat sangat sederhana contoh
sumber
saya melakukannya seperti android ini: background = "@ color / colorAccent" saya hanya pergi ke folder res kemudian klik pada nilai folder dan kemudian pada colors.xml dalam colors.xml Saya hanya mengubah warna colorAccent dan menyebutnya di android: background dan itu dilakukan
sumber
Poin yang kami lewatkan adalah sebelum Anda mengatur warna pada tombol, penting untuk bekerja pada nilai yang Anda inginkan untuk warna ini. Jadi Anda bisa pergi ke nilai> warna. Anda akan menemukan yang default, tetapi Anda juga dapat membuat warna dengan memotong dan menempelkannya, mengubah warna dan nama. Lalu ... ketika Anda pergi untuk mengubah warna tombol mengambang (di activity_main), Anda dapat memilih yang Anda buat
Contoh - kode pada nilai> warna dengan warna default + 3 warna lainnya yang telah saya buat:
Sekarang Tombol Aksi Terapung saya dengan warna yang saya buat dan beri nama "corPar":
Ini berhasil untuk saya. Semoga berhasil!
sumber
Jika Anda memiliki Tombol Aksi Terapung tanpa gambar, Anda dapat mengubah warna secara terprogram menggunakan:
sumber
tambahkan warna dalam file color.xml dan kemudian tambahkan baris kode ini ...
floatingActionButton.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(R.color.fab2_color)));
sumber
Anda dapat menggunakan kode ini jika Anda ingin mengubah warna secara terprogram
sumber
menggunakan
app: backgroundTint = "@ color / orange" di
sumber
untuk desain Material, saya baru saja mengubah warna tombol aksi mengambang seperti ini, Tambahkan dua baris di bawah ini dalam tombol aksi Mengambang Anda xml. Dan dilakukan,
sumber
di Kotlin:
sumber