Patrones y Componentes

En Android 8.0, el menú Configuración gana varios componentes y widgets que cubren usos comunes. Se alienta a los fabricantes y desarrolladores de dispositivos a usar los componentes comunes al ampliar la aplicación Configuración para que las nuevas interfaces de usuario sean consistentes con la IU de configuración existente.

Aquí hay un resumen de las mejoras:

  • Cambio de comportamiento del divisor en el marco de preferencia de la biblioteca de soporte. El divisor ahora se dibuja entre categorías.
  • Cambio de tema de la barra de acciones. ActionBar ahora usa un tema de color claro, con texto de color de acento.
  • Nuevo diseño de preferencias. El espacio para íconos permanece incluso cuando una preferencia no tiene ícono.

Nuevos widgets:

  • Un widget de encabezado para los detalles de la aplicación. Muestra el icono de la aplicación, la etiqueta de la aplicación y otra información.
  • Un botón de expansión en algunas páginas. La página puede comenzar colapsada y ocultar elementos menos importantes hasta que el usuario haga clic en el botón expandir.
  • Interfaz de usuario predeterminada del selector de aplicaciones:
    • La interfaz de usuario para elegir el navegador predeterminado, la aplicación de teléfono predeterminada, etc.
    • Anteriormente un cuadro de diálogo, ahora es una interfaz de usuario basada en botones de radio de pantalla completa.
  • Una preferencia de estilo "MasterSwitch". Esta es una preferencia con dos objetivos de clic. El objetivo izquierdo conduce a un fragmento o intención de subconjunto. El objetivo derecho es un conmutador que controla el encendido/apagado de toda la página.

Ejemplos y fuente

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

      Nota: Este componente debe usarse junto con DashboardFragment. (Consulte más detalles sobre DashboardFragment en Arquitectura de información actualizada ).

  • Selector de aplicaciones predeterminado
    • Puede encontrar el código para 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 intenciones.
  • Preferencia de estilo MasterSwitch
    • El código está en: packages/apps/Settings/src/com/android/settings/widget/MasterSwitchPreference.java
    • Un ejemplo de caso de uso es el interruptor maestro de Wi-Fi. Puede 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 una nueva preferencia de estilo "MasterSwitch" o un selector de aplicaciones predeterminado, deben seguir los ejemplos de este documento y los archivos de referencia (Javadoc) escritos con cada componente para obtener más detalles.

personalización

  • Comportamiento del divisor. Para cambiar cómo se dibuja el divisor, actualice el estilo de los divisores de configuración y cambie el valor de lo siguiente:
    • allowDividerAbove
    • allowDividerBelow
    • allowDividerAfterLastItem
  • Color del tema de la barra de acciones. Las actividades deben usar Theme.DeviceDefault.Settings como su tema o crear un tema personalizado usando Theme.DeviceDefault.Settings como principal.
  • Widget de encabezado de aplicación. Usa configuradores en AppHeaderController para personalizar cada campo y llama a build() una vez que todos los campos estén configurados.
  • Botón expandir:
    • Para deshabilitar completamente la funcionalidad, invalide el constructor de ProgressiveDisclosureMixin y establezca keepExpanded en verdadero.
    • Para personalizar cuántos elementos mostrar inicialmente, llama al método ProgressiveDisclosureMixin.setTileLimit() durante el método onAttach(Context) del fragmento.