Pola dan Komponen

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

Berikut adalah ringkasan perbaikan:

  • Perubahan perilaku pembagi dalam kerangka Preferensi pustaka dukungan. Pembagi sekarang ditarik 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 sebagai 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.
    • Dulunya 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 subpengaturan. Target kanan adalah sakelar sakelar, yang mengontrol hidup/mati untuk 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 kode 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
  • Perluas tombol
    • Contoh dan kode dapat ditemukan di:
      packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java

      Catatan: Komponen ini harus digunakan bersama 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 pemilih untuk maksud yang berbeda.
  • Preferensi gaya MasterSwitch
    • Kode ada di: packages/apps/Settings/src/com/android/settings/widget/MasterSwitchPreference.java
    • Contoh kasus penggunaan adalah sakelar master Wi-Fi. Anda dapat menemukan contoh di: packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java

Penerapan

Produsen perangkat dapat mulai menggunakan semua komponen baru di luar kotak. 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 untuk pembagi Pengaturan dan ubah nilai berikut ini:
    • izinkanPembagiDi atas
    • izinkanPembagiDi Bawah
    • allowDividerAfterLastItem
  • 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 setter di AppHeaderController untuk menyesuaikan setiap bidang dan panggil build() setelah semua bidang disetel.
  • Perluas tombol:
    • Untuk menonaktifkan fungsionalitas sepenuhnya, timpa 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.