Apakah mungkin untuk mengubah skema warna datepicker (dan juga timepicker) untuk Android 5.0?
Saya sudah mencoba mengatur warna aksen, tetapi ini tidak berhasil (baik dengan dan tanpa android:
):
<!-- colorPrimary is used for the default action bar background -->
<item name="colorPrimary">@color/purple</item>
<!-- colorPrimaryDark is used for the status bar -->
<item name="colorPrimaryDark">@color/purple_tint</item>
<!-- colorAccent is used as the default value for colorControlActivated
which is used to tint widgets -->
<item name="colorAccent">@color/purple_tint</item>
Dari aslinya:
Untuk sesuatu seperti ini:
android
dialog
styles
background-color
Warpzit
sumber
sumber
Jawaban:
Alasan mengapa saran Neil menghasilkan layar penuh
DatePicker
adalah pilihan tema induk:Selain itu, jika Anda mengikuti rute ini, Anda harus menentukan tema saat membuat
DatePickerDialog
:Ini, menurut saya, tidak baik. Seseorang harus mencoba untuk menjaga styling dari java dan di dalam styles.xml / themes.xml.
Saya setuju bahwa saran Neil, dengan sedikit perubahan (mengubah tema induk menjadi,
Theme.Material.Light.Dialog
) akan memberi Anda hasil yang diinginkan. Tapi, inilah cara lain:Pada pemeriksaan pertama, kami menemukan
datePickerStyle
yang mendefinisikan hal-hal seperti:headerBackground
(apa yang Anda coba ubah)dayOfWeekBackground
, dan beberapa warna teks dan gaya teks lainnya.Mengganti atribut ini di tema aplikasi Anda tidak akan berfungsi.
DatePickerDialog
menggunakan tema terpisah yang dapat ditentukan oleh atributdatePickerDialogTheme
. Jadi, agar perubahan kita berpengaruh, kita harus menggantidatePickerStyle
inside a overridendatePickerDialogTheme
.Kita mulai:
Ganti
datePickerDialogTheme
di dalam tema dasar aplikasi Anda:Tentukan
MyDatePickerDialogTheme
. Pilihan tema induk akan bergantung pada apa tema dasar aplikasi Anda: bisa jadiTheme.Material.Dialog
atauTheme.Material.Light.Dialog
:Kami telah menimpa
datePickerStyle
dengan gayaMyDatePickerStyle
. Pilihan induk sekali lagi akan bergantung pada apa tema dasar aplikasi Anda: baikWidget.Material.DatePicker
atauWidget.Material.Light.DatePicker
. Tentukan sesuai kebutuhan Anda:Saat ini, kami hanya mengganti
headerBackground
yang secara default disetel ke?attr/colorAccent
(ini juga mengapa saran Neil berfungsi dalam mengubah latar belakang). Tetapi ada cukup banyak kemungkinan penyesuaian:Jika Anda tidak ingin banyak kontrol (kustomisasi), Anda tidak perlu mengganti
datePickerStyle
.colorAccent
mengontrol sebagian besarDatePicker's
warna. Jadi, mengesampingkan justcolorAccent
insideMyDatePickerDialogTheme
seharusnya berfungsi:Mengganti
colorAccent
memberi Anda manfaat tambahan dari mengubahOK
&CANCEL
warna teks juga. Tidak buruk.Dengan cara ini Anda tidak perlu memberikan informasi gaya apa pun ke
DatePickerDialog's
konstruktor. Semuanya telah terhubung dengan benar:sumber
Cobalah ini.
Kode
Style Dalam file styles.xml Anda
EDIT - Mengubah tema menjadi Theme.AppCompat.Light.Dialog seperti yang disarankan
sumber
parent="Theme.AppCompat.Light.Dialog"
sebagai penggantiparent="Theme.AppCompat.Light"
Ciptakan gaya baru
Kode Java:
Tema induk adalah kuncinya di sini. Pilih colorAccent Anda
Hasil:
sumber
coba ini, bekerjalah untukku
Letakkan dua opsi,
colorAccent
danandroid:colorAccent
sumber
Sekadar menyebutkan, Anda juga dapat menggunakan default tema seperti
android.R.style.Theme_DeviceDefault_Light_Dialog
.sumber
Anda tidak perlu membuat tema, cukup tulis di objek pembuatan dialog Anda
ikuti ini itu akan memberi Anda semua jenis gaya pemetik tanggal itu benar-benar berfungsi
http://www.android-examples.com/change-datepickerdialog-theme-in-android-using-dialogfragment/
sumber
Saya memiliki masalah bahwa tombol pemilih waktu belum terlihat di layar untuk API 24 di android. (API 21+) diselesaikan dengan
sumber
sumber
Untuk mengubah warna teks item daftar Tahun (KHUSUS UNTUK ANDROID 5.0)
Cukup atur warna teks tertentu dalam gaya dialog pemilih tanggal Anda. Untuk beberapa alasan, pengaturan bendera
yearListItemTextAppearance
tidak mencerminkan perubahan apa pun pada daftar tahun.sumber