Patrones y componentes

En Android 8.0, se agregan varios componentes y widgets al menú Configuración, cubren usos comunes. Se recomienda a los fabricantes y desarrolladores de dispositivos que utilicen la componentes comunes cuando se extiende la app de Configuración para que las interfaces de usuario nuevas permanezcan coherentes con la IU de configuración existente.

Este es un resumen de las mejoras:

  • Cambio del comportamiento del divisor en el framework de Preference de la biblioteca de compatibilidad El divisor es que ahora se dibujan entre categorías.
  • Cambio de tema de ActionBar. La ActionBar ahora usa el tema de color claro, con texto de los colores de los elementos destacados.
  • Nuevo diseño de preferencia. El espacio para los íconos permanece incluso cuando una preferencia no tiene ningún ícono.

Nuevos widgets:

  • Un widget de encabezado para los detalles de la app Muestra el ícono, la etiqueta de la app y otra información.
  • Un botón para expandir en algunas páginas La página puede comenzar como contraída y ocultarse menos los elementos importantes hasta que el usuario hace clic en el botón para expandir.
  • IU predeterminada del selector de aplicaciones:
    • La IU para elegir el navegador y la aplicación para teléfonos predeterminados, entre otros.
    • Antes era un diálogo, pero ahora es una IU basada en botones de selección de pantalla completa.
  • Un "MasterSwitch" preferencia de estilo. Esta es una preferencia con dos clics objetivos. El objetivo izquierdo conduce a un fragmento o un intent subconjuntos. El objetivo correcto es un interruptor, que controla la activación y desactivación de toda la página.

Ejemplos y fuente

  • Comportamiento del divisor
    • Se modificaron todas las páginas de Configuración para usar el nuevo comportamiento de divisor.
    • El comportamiento del divisor se define como ThemeOverlay en:
      packages/apps/Settings/res/values/styles_preference.xml
  • Cambio de tema en ActionBar
    • Se modificaron todas las páginas de Settings para usar el nuevo tema ActionBar.
    • El tema se define en Theme.DeviceDefault.Settings.
  • Nuevo diseño de preferencia
    • Muchas páginas de Configuración ahora usan el nuevo diseño de preferencias.
    • Encontrarás el código en:
      packages/apps/Settings/res/values/styles_preference.xml
  • Widget de encabezado de la app
    • La mayoría de las páginas de información de la app de Configuración ya están implementando el nuevo encabezado App.
    • Puedes encontrar ejemplos y códigos en:
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • Botón para expandir
    • Puedes encontrar ejemplos y códigos en:
      packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java

      Nota: Este componente debe usarse junto con DashboardFragment (obtén más detalles sobre DashboardFragment en la arquitectura de la información actualizada).

  • Selector de apps predeterminado
    • Puedes encontrar el código de la clase base en:
      packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
    • Hay varias subclases de DefaultAppPickerFragment, cada una de las cuales implementa un selector para diferentes intents.
  • Preferencia de estilo de MasterSwitch
    • Código en: https://cs.android.com/android/platform/superproject/main/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • Un ejemplo de caso de uso es el interruptor principal de Wi-Fi. Puedes encontrar un ejemplo en: packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java

Implementación

Los fabricantes de dispositivos pueden comenzar a usar todos los componentes nuevos listos para usar. Si los OEM deciden implementar un nuevo "MasterSwitch" preferencia de estilo o aplicación predeterminada selector, debe seguir los ejemplos de este documento y los archivos de referencia (Javadoc) escrito con cada componente para obtener más detalles.

Cómo personalizar el menú de configuración

  • Comportamiento del divisor. Para cambiar la forma en que se dibuja el divisor, actualiza el estilo de los divisores de Configuración y cambia el valor por lo siguiente:
    • allowDividerAbove
    • allowDividerBelow
    • allowDividerAfterLastItem
  • Color del tema de ActionBar. Las actividades deben usar Theme.DeviceDefault.Settings como tema. crea un tema personalizado con Theme.DeviceDefault.Settings como elemento superior.
  • Widget de encabezado de la app Usa métodos set en AppHeaderController para personalizar cada campo y llamada Es build() una vez que se establecen todos los campos.
  • Botón para expandir:
    • Para inhabilitar por completo la funcionalidad, anula el constructor para ProgressiveDisclosureMixin y establece keepExpanded como true.
    • Para personalizar la cantidad de elementos que se mostrarán inicialmente, llama al ProgressiveDisclosureMixin.setTileLimit() durante la onAttach(Context).