Baru-baru ini, saya membaca posting ini:
Perpustakaan Dukungan Desain Android
Perpustakaan Dukungan Android, revisi 22.2.0
Tapi, tidak satu pun dari mereka memberi saya contoh detail tentang cara membuat yang baru FloatingActionButton
. Sangat sulit dimengerti, saya mengajukan pertanyaan ini.
Adakah yang bisa memberi saya contoh tentang hal itu?
Bantuan apa pun sangat dihargai. Terima kasih sebelumnya.
EDIT
Saya baru saja menemukan beberapa masalah pada FloatingActionButton
(FAB), dan saya ingin meningkatkan jawaban lain. Lihat jawaban saya di bawah ini.
Jawaban:
Jadi di
build.gradle
file Anda , tambahkan ini:AndroidX Catatan: Google sedang memperkenalkan perpustakaan ekstensi AndroidX baru untuk menggantikan Perpustakaan Dukungan yang lebih lama. Untuk menggunakan AndroidX, pertama-tama pastikan Anda telah memperbarui
gradle.properties
file Anda , dieditbuild.gradle
untuk mengaturcompileSdkVersion
ke28
(atau lebih tinggi), dan menggunakan baris berikut alih-alih yang sebelumnyacompile
.Selanjutnya, di
themes.xml
ataustyles.xml
atau apa pun Anda, pastikan Anda mengatur ini- itu adalah warna aksen aplikasi Anda - dan warna FAB Anda kecuali Anda menimpanya (lihat di bawah):Dalam XML tata letak:
Atau jika Anda menggunakan pustaka materi AndroidX di atas, Anda sebaiknya menggunakan ini:
Anda dapat melihat lebih banyak opsi dalam dokumen (dokumen materi di sini) (
setRippleColor
, dll.), Tetapi salah satu catatan adalah:Satu lagi yang menarik - untuk mengubah warna latar belakang hanya satu FAB, tambahkan:
(misalnya untuk mengubahnya menjadi merah) ke XML di atas.
Lagi pula, dalam kode, setelah tampilan Aktivitas / Fragmen meningkat ....
Pengamatan:
Berikut cara untuk menghapus atau mengganti bantalan jika ada terlalu banyak:
Juga, saya akan secara program menempatkan FAB pada "jahitan" antara dua area dalam RelativeLayout dengan meraih ketinggian FAB, membaginya dengan dua, dan menggunakannya sebagai margin offset. Tapi myFab.getHeight () mengembalikan nol, bahkan setelah tampilan meningkat, sepertinya. Alih-alih, saya menggunakan ViewTreeObserver untuk mendapatkan ketinggian hanya setelah diletakkan dan kemudian mengatur posisi. Lihat tip ini di sini . Itu terlihat seperti ini:
Tidak yakin apakah ini cara yang tepat untuk melakukannya, tetapi tampaknya berhasil.
Jika Anda ingin FAB pada "jahitan" yang dapat Anda gunakan
layout_anchor
danlayout_anchorGravity
berikut adalah contohnya:Ingatlah bahwa Anda dapat secara otomatis memiliki tombol yang melompat ketika Snackbar muncul dengan membungkusnya di CoordinatorLayout .
Lebih:
sumber
android:backgroundTint="#FF0000"
misalnya ke FloatingActionBar di XML. (menambahkan untuk menjawab)sp
di properti evelation. Seharusnyaapp:elevation="4dp"
FloatingActionButton
keCoordinatorLayout
, Anda dapat menggunakanapp:layout_anchor="element_with_seam"
danapp:layout_anchorGravity="bottom|right|end"
memposisikan FAB dengan benar di atas jahitan - lihat tata letak activity_detail dari cheesesquareSaya baru saja menemukan beberapa masalah pada FAB dan saya ingin meningkatkan jawaban lain.
masalah setRippleColor
Jadi, masalah akan muncul setelah Anda mengatur warna riak (warna FAB saat ditekan) secara terprogram
setRippleColor
. Namun, kami masih memiliki cara alternatif untuk mengaturnya, yaitu dengan menelepon:Proyek Anda perlu memiliki struktur ini:
Dan kode dari
fab_ripple_color.xml
adalah:Akhirnya, ubah FAB Anda sedikit:
Untuk API level 21 dan lebih tinggi, setel margin kanan dan bawah ke 24dp:
Panduan desain FloatingActionButton
Seperti yang Anda lihat pada kode xml FAB saya di atas, saya menetapkan:
Dengan mengatur atribut ini, Anda tidak perlu mengatur
layout_marginTop
danlayout_marginRight
lagi (hanya di pra-Lollipop). Android akan menempatkannya secara otomatis di sisi kanan layar kornet, yang sama dengan FAB normal di Android Lollipop.Atau, Anda dapat menggunakan ini di
CoordinatorLayout
:elevation
dan 12dppressedTranslationZ
, menurut panduan ini dari Google.sumber
pressedTranslationZ
. Saya tidak tahu itu.app:elevation
danapp:pressedTranslationZ
nilai - nilai. Nilai standarnya adalah yang ditentukan dalam pedoman desain Material. Bagaimanapun, e.shishkin benar, nilainya adalahapp:elevation:6dp
danpressedTranslationZ:6dp
. Anda dapat memeriksanya di com.android.support.design kode sumberFloatingActionButton
meluasImageView
. Jadi, itu sederhana seperti memperkenalkan sebuahImageView
tata letak Anda. Berikut ini adalah contoh XML.app:borderWidth="0dp"
ditambahkan sebagai solusi untuk masalah ketinggian.sumber
untuk AndroidX gunakan suka
sumber
Jika Anda sudah menambahkan semua perpustakaan dan masih tidak berfungsi gunakan:
dari pada:
Dan semua akan bekerja dengan baik :)
sumber