Pola dan komponen

Di Android 8.0, menu Pengaturan memperoleh beberapa komponen dan widget yang mencakup penggunaan umum. Produsen dan pengembang perangkat dianjurkan untuk menggunakan komponen umum saat memperluas aplikasi Pengaturan sehingga antarmuka pengguna baru tetap konsisten dengan UI Pengaturan yang ada.

Berikut ringkasan perbaikannya:

  • Perubahan perilaku pembagi dalam kerangka Preferensi perpustakaan dukungan. Pembagi sekarang ditarik antar kategori.
  • Perubahan tema ActionBar. ActionBar sekarang menggunakan tema warna terang, dengan teks berwarna 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 perluas di beberapa halaman. Halaman dapat dimulai sebagai 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.
    • Dahulu berupa dialog, sekarang menjadi UI berbasis tombol radio layar penuh.
  • Preferensi gaya "MasterSwitch". Ini adalah preferensi dengan dua target klik. Target kiri mengarah ke fragmen atau maksud subsetting. Target yang tepat adalah tombol pengalih, yang mengontrol hidup/mati seluruh halaman.

Contoh dan sumber

  • Perilaku pembagi
    • Semua halaman di Pengaturan dimodifikasi untuk menggunakan perilaku pembagi baru.
    • Perilaku pembagi didefinisikan sebagai ThemeOverlay di:
      packages/apps/Settings/res/values/styles_preference.xml
  • Perubahan tema ActionBar
    • Semua halaman di Pengaturan dimodifikasi untuk menggunakan tema ActionBar baru.
    • Tema ditentukan di Theme.DeviceDefault.Settings
  • Tata letak preferensi baru
    • Banyak halaman di Pengaturan sekarang menggunakan tata letak preferensi baru.
    • Anda dapat menemukan kodenya di:
      packages/apps/Settings/res/values/styles_preference.xml
  • Widget tajuk aplikasi
    • Sebagian besar halaman informasi aplikasi di Pengaturan sudah menerapkan header Aplikasi baru.
    • Contoh dan kode dapat ditemukan di:
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • Tombol Perluas
    • 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 lebih lanjut tentang DashboardFragment di Arsitektur Informasi yang Diperbarui .)

  • Pemilih aplikasi default
    • Anda dapat menemukan kode untuk kelas dasar di:
      packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
    • Ada beberapa subkelas DefaultAppPickerFragment, masing-masing mengimplementasikan picker untuk maksud berbeda.
  • Preferensi gaya MasterSwitch
    • Kode ada di: https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • Contoh kasus penggunaan adalah saklar utama Wi-Fi. Anda dapat menemukan contohnya di: packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java

Penerapan

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 detail selengkapnya.

Menyesuaikan

  • Perilaku pembagi. Untuk mengubah cara pembagi digambar, perbarui gaya Pembagi pengaturan dan ubah nilai berikut ini:
    • izinkan Pembagi Di Atas
    • izinkan Pembagi Di Bawah
    • izinkanDividerAfterLastItem
  • Warna tema ActionBar. Aktivitas harus menggunakan Theme.DeviceDefault.Settings sebagai temanya, atau membuat tema khusus menggunakan Theme.DeviceDefault.Settings sebagai induk.
  • Widget tajuk aplikasi. Gunakan penyetel di AppHeaderController untuk menyesuaikan setiap bidang dan memanggil build() setelah semua bidang disetel.
  • Tombol Perluas:
    • Untuk menonaktifkan fungsionalitas sepenuhnya, ganti konstruktor untuk ProgressiveDisclosureMixin dan setel keepExpanded ke true.
    • Untuk menyesuaikan berapa banyak item yang akan ditampilkan pada awalnya, panggil metode ProgressiveDisclosureMixin.setTileLimit() selama metode onAttach(Context) fragmen.