Di Android 8.0, menu Setelan mendapatkan beberapa komponen dan widget yang mencakup penggunaan umum. Produsen dan developer perangkat dianjurkan untuk menggunakan komponen umum saat memperluas aplikasi Setelan sehingga antarmuka pengguna baru tetap konsisten dengan UI Setelan yang ada.
Berikut ringkasan peningkatannya:
- Perubahan perilaku pemisah dalam framework Preferensi support library. Pemisah kini digambar di antara kategori.
- Perubahan tema ActionBar. ActionBar sekarang 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 perluas.
- UI pemilih aplikasi default:
- UI untuk memilih browser default, aplikasi telepon default, dll.
- Sebelumnya berupa dialog, kini berupa UI berbasis tombol pilihan layar penuh.
- Preferensi gaya "MasterSwitch". Ini adalah preferensi dengan dua target klik. Target kiri mengarah ke fragmen atau intent subset. Target kanan adalah tombol pengalih, 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 dalam Theme.DeviceDefault.Settings
- Tata letak preferensi baru
- Banyak halaman di Setelan kini menggunakan tata letak preferensi baru.
- Anda dapat menemukan kode 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.javaCatatan: 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 berada di:
https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java - Contoh kasus penggunaan adalah peralihan utama Wi-Fi. Anda dapat menemukan contoh di:
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
- Kode berada di:
Implementasi
Produsen perangkat dapat langsung menggunakan semua komponen baru. 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 penggambaran pemisah, perbarui gaya untuk Pemisah setelan dan
ubah nilai untuk berikut ini:
allowDividerAboveallowDividerBelowallowDividerAfterLastItem
- Warna tema ActionBar. Aktivitas harus menggunakan
Theme.DeviceDefault.Settingssebagai tema, atau membuat tema kustom menggunakanTheme.DeviceDefault.Settingssebagai induk. - Widget header aplikasi. Gunakan setter di AppHeaderController untuk menyesuaikan setiap kolom dan panggil
build()setelah semua kolom ditetapkan. - Tombol luaskan:
- Untuk menonaktifkan fungsi sepenuhnya, ganti konstruktor untuk ProgressiveDisclosureMixin dan tetapkan keepExpanded ke benar (true).
- Untuk menyesuaikan jumlah item yang ditampilkan pada awalnya, panggil metode
ProgressiveDisclosureMixin.setTileLimit()selama metodeonAttach(Context)fragmen.