Di salah satu Kegiatan saya, saya mengubah warna Toolbar menggunakan Palette
. Tapi di 5.0 perangkat yang menggunakan ActionBarActivity
satu status bar
warna adalah warna saya colorPrimaryDark
dalam kegiatan tema saya jadi saya harus 2 warna yang sangat berbeda dan tidak terlihat baik.
Saya menyadari bahwa dalam 5.0 Anda dapat menggunakan Window.setStatusBarColor()
tetapi ActionBarActivity
tidak memiliki ini.
jadi pertanyaan saya adalah di 5.0 bagaimana saya bisa mengubah warna bilah status ActionBarActivity
?
Jawaban:
Saya tidak yakin saya mengerti masalahnya.
Saya ingin mengubah warna bilah status secara terprogram (dan asalkan perangkat memiliki Android 5.0) maka Anda dapat menggunakannya
Window.setStatusBarColor()
. Seharusnya tidak membuat perbedaan apakah aktivitas tersebut berasal dariActivity
atauActionBarActivity
.Coba lakukan:
Baru saja menguji ini dengan
ActionBarActivity
dan itu berfungsi dengan baik.Catatan: Mengatur
FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
bendera secara program tidak diperlukan jikavalues-v21
file gaya Anda sudah diatur, melalui:sumber
getWindow()
minSdkVersion
dan / atautargetSdkVersion
atribut pada<uses-sdk ...>
elemen).Ada berbagai cara untuk mengubah warna bilah status.
1) Menggunakan styles.xml. Anda dapat menggunakan atribut android: statusBarColor untuk melakukan ini dengan cara yang mudah namun statis.
Catatan: Anda juga dapat menggunakan atribut ini dengan tema Material.
2) Anda bisa menyelesaikannya secara dinamis menggunakan metode setStatusBarColor (int) di kelas Window. Tetapi ingat bahwa metode ini hanya tersedia untuk API 21 atau lebih tinggi. Jadi pastikan untuk memeriksa itu, atau aplikasi Anda pasti akan macet di perangkat yang lebih rendah.
Berikut adalah contoh kerja dari metode ini.
di mana primaryDark adalah 700 warna warna primer yang saya gunakan di aplikasi saya. Anda dapat menentukan warna ini dalam file colors.xml.
Cobalah dan beri tahu saya jika Anda memiliki pertanyaan. Semoga ini bisa membantu.
sumber
clearFlags
perbaiki masalah sayaSaya tidak berpikir warna bilah status telah diterapkan di AppCompat. Ini adalah atribut yang tersedia:
(Dari \ sdk \ ekstra \ android \ support \ v7 \ appcompat \ res \ values \ attrs.xml )
sumber
Coba ini, saya menggunakan ini dan ini bekerja sangat baik dengan v21.
sumber
Terima kasih atas jawaban di atas, dengan bantuan mereka, setelah R&D tertentu untuk aplikasi xamarin.android MVVMCross, di bawah ini berfungsi
Tandai ditentukan untuk aktivitas dalam metode OnCreate
Untuk setiap MvxActivity, Tema disebutkan sebagai berikut
SplashStyle.xml saya terlihat seperti di bawah ini
Dan saya punya V7 appcompact disebut.
sumber
[Versi Kotlin] Saya membuat ekstensi ini yang juga memeriksa apakah warna yang diinginkan memiliki kontras yang cukup untuk menyembunyikan UI Sistem, seperti Ikon Status Baterai, Jam, dll, jadi kami mengatur UI Sistem putih atau hitam sesuai dengan ini.
sumber
Menerapkan
di
Theme.AppCompat.Light.DarkActionBar
tidak bekerja untuk saya. Apa triknya, membericolorPrimaryDark
seperti biasa bersamaandroid:colorPrimary
di styles.xmldan dalam pengaturan
tidak harus menetapkan warna statusbar dalam kode.
sumber