Di Android 8.0, menu Setelan mendapatkan beberapa komponen dan widget yang mencakup penggunaan umum. Produsen dan developer perangkat sebaiknya menggunakan komponen umum saat memperluas aplikasi Setelan sehingga antarmuka pengguna baru tetap konsisten dengan UI Setelan yang ada.
Berikut adalah ringkasan peningkatan:
- Perubahan perilaku pemisah di framework Preference library dukungan. Pembagi kini digambar di antara kategori.
- Perubahan tema ActionBar. ActionBar kini menggunakan tema warna terang, dengan teks warna aksen.
- Tata letak preferensi baru. Ruang untuk ikon tetap ada meskipun preferensi tidak memiliki ikon.
Widget baru:
- Widget header untuk detail aplikasi. Menampilkan ikon aplikasi, label aplikasi, dan informasi lainnya.
- Tombol luaskan di beberapa halaman. Halaman dapat dimulai dalam keadaan diciutkan dan menyembunyikan item yang kurang penting hingga pengguna mengklik tombol luaskan.
- UI pemilih aplikasi default:
- UI untuk memilih browser default, aplikasi telepon default, dll.
- Dulunya dialog, kini menjadi UI berbasis tombol pilihan layar penuh.
- Preferensi gaya "MasterSwitch". Ini adalah preferensi dengan dua target klik. Target kiri mengarah ke fragmen atau intent subkumpulan. Target kanan adalah tombol tombol, yang mengontrol aktif/nonaktif untuk seluruh halaman.
Contoh dan sumber
- Perilaku pemisah
- Semua halaman di Setelan diubah untuk menggunakan perilaku pemisah baru.
- Perilaku pemisah ditentukan sebagai ThemeOverlay di:
packages/apps/Settings/res/values/styles_preference.xml
- Perubahan tema ActionBar
- Semua halaman di Setelan diubah untuk menggunakan tema ActionBar baru.
- Tema ditentukan di Theme.DeviceDefault.Settings
- Tata letak preferensi baru
- Banyak halaman di Setelan kini menggunakan tata letak preferensi baru.
- Anda dapat menemukan kodenya di:
packages/apps/Settings/res/values/styles_preference.xml
- Widget header aplikasi
- Sebagian besar halaman informasi aplikasi di Setelan sudah menerapkan header Aplikasi baru.
- Contoh dan kode dapat ditemukan di:
packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
- Tombol luaskan
- Contoh dan kode dapat ditemukan di:
packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
Catatan: Komponen ini harus digunakan bersama dengan DashboardFragment. (Lihat detail selengkapnya tentang DashboardFragment di Arsitektur Informasi yang Diperbarui.)
- Contoh dan kode dapat ditemukan di:
- Pemilih aplikasi default
- Anda dapat menemukan kode untuk class dasar di:
packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
- Ada beberapa subclass DefaultAppPickerFragment, yang masing-masing menerapkan pemilih untuk intent yang berbeda.
- Anda dapat menemukan kode untuk class dasar di:
- Preferensi gaya MasterSwitch
- Kode ada di:
https://cs.android.com/android/platform/superproject/main/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
- Contoh kasus penggunaan adalah tombol utama Wi-Fi. Anda dapat menemukan contohnya di:
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
- Kode ada di:
Implementasi
Produsen perangkat dapat mulai menggunakan semua komponen baru secara langsung. Jika OEM memutuskan untuk menerapkan preferensi gaya "MasterSwitch" baru atau pemilih aplikasi default, mereka harus mengikuti contoh dalam dokumen ini dan file referensi (Javadoc) yang ditulis dengan setiap komponen untuk mengetahui detail selengkapnya.
Menyesuaikan menu setelan
- Perilaku pemisah. Untuk mengubah cara pemisah digambar, perbarui gaya untuk pemisah Setelan dan
ubah nilai untuk hal berikut:
allowDividerAbove
allowDividerBelow
allowDividerAfterLastItem
- Warna tema ActionBar. Aktivitas harus menggunakan
Theme.DeviceDefault.Settings
sebagai temanya, atau membuat tema kustom menggunakanTheme.DeviceDefault.Settings
sebagai induk. - Widget header aplikasi. Gunakan penyetel di AppHeaderController untuk menyesuaikan setiap kolom dan memanggil
build()
setelah semua kolom ditetapkan. - Tombol luaskan:
- Untuk menonaktifkan fungsi sepenuhnya, ganti konstruktor untuk ProgressiveDisclosureMixin dan tetapkan keepExpanded ke true.
- Untuk menyesuaikan jumlah item yang akan ditampilkan pada awalnya, panggil
metode
ProgressiveDisclosureMixin.setTileLimit()
selama metodeonAttach(Context)
fragmen.