Visão geral

Use a IU escalonável para criar experiências de usuário sofisticadas, dinâmicas e com vários painéis em carros. Interface escalonável:

  • Oferece um sistema de janela flexível.

  • Minimiza os riscos, custos e complexidades de engenharia apresentados pelo conjunto de teste de compatibilidade (CTS) para implementações de interface do usuário.

A interface escalonável é compatível com uma ampla variedade de designs modernos de infoentretenimento no veículo (IVI) que precisam de arranjos dinâmicos de janelas.

Benefícios e compliance

Os benefícios da interface escalonável incluem:

  • Menor risco de teste: o framework é pré-certificado e compatível com o CTS, o que elimina o principal risco de falhas de teste no final de um ciclo de programa. A interface escalonável pode economizar meses de trabalho de engenharia e acelerar a compliance.

  • Mais flexibilidade de design: capacidade comprovada de recriar vários modelos de janela automotiva complexos. A interface escalonável é compatível com designs ambiciosos e altamente diferenciados.

  • Menos complexidade de implementação: a abstração em um modelo XML de alto nível e orientado por configuração reduz a barreira de entrada para a lógica de janelas personalizada.

  • Melhor desempenho: a interface escalonável é criada em uma base de janelas de alto desempenho, totalmente integrada ao Android padrão. As transições são suaves e podem ser otimizadas.

Principais blocos de desenvolvimento

A interface escalonável minimiza a necessidade de código específico do OEM, facilita a capacidade de atualização e reduz os riscos de lançamento ao eliminar armadilhas e diminuir problemas de certificação.

A abordagem baseada em XML resolve desafios comuns ao gerenciar sistemas de janelas complexos no AAOS, como os relacionados a posicionamento preciso, conflitos de ordem Z e foco do app.

A interface escalonável fornece esses elementos básicos.

Painel

Um painel é o contêiner retangular fundamental na tela. Cada painel é mapeado para uma tarefa raiz dedicada para gerenciamento independente. Um painel pode hospedar tarefas de apps (TaskPanel) ou conteúdo baseado em visualização, como widgets (DecorPanel). Para saber mais, consulte Configurar um painel.

Variante

Uma variante define um estado visual específico para um painel e inclui propriedades como bounds (posição e tamanho), visibility, layer (ordem Z) e raio corner. Um único painel pode ter variantes, como opened, closed ou minimized. Para saber mais, consulte Usar uma variante para criar um estado visual.

Transição

Uma transição define como um painel passa do estado atual fromVariant para um novo estado, toVariant. A transição pode ser acionada por um Event e pode definir a animação que o painel passa durante a mudança de estado. Um painel precisa mudar do estado atual para toVariant. Para sincronização, todas as transições são animadas e coordenadas pelo gerenciador de janelas principal.

  • Evento:um acionador para iniciar uma mudança na interface. Um OEM ou o sistema pode pré-definir um gatilho. Por exemplo, _System_OnHomeEvent, _System_TaskOpenEvent ou um toque em um botão de navegação personalizado.

Por exemplo, a interface escalonável usa eventos para acionar transições. Essas transições animam um painel de uma variante para outra para mostrar mudanças dinâmicas na interface. Essas mudanças são comunicadas a outros apps do sistema para ajustar o conteúdo conforme necessário. Ao definir relações de interface em XML, você pode:

  • Especificar comportamentos complexos da interface do usuário:defina interações complexas da interface do usuário.

  • Organizar sistemas de janelas:controle o posicionamento e a sobreposição das janelas.

  • Implemente temas visuais:aplique uma estética e um branding consistentes.

  • Reduza a complexidade do código:minimize a necessidade de desenvolvimento extenso de código personalizado.

Para saber mais, consulte Configurar uma transição.

Botões da interface do sistema

Além de acionar intents, o CarSystemBarButtons pode acionar um evento ScalableUI quando tocado usando os atributos event, selectedEvent e unselectedEvent.

event descreve o evento a ser acionado quando o botão é tocado. Se for necessário um controle mais granular sobre um evento, use os atributos selectedEvent e unselectedEvent para especificar o evento a ser acionado quando o botão for selecionado ou desmarcado, respectivamente.

Quando implementar a interface do sistema

Esta seção descreve os usos ideais da interface escalonável.

Criar layouts multipainel persistentes

Crie uma experiência multizona em que diferentes áreas da tela são permanentemente dedicadas a funções específicas. Por exemplo, controles de mídia dedicados, uma faixa de temperatura ou um mapa em tela cheia.

Use TaskPanels para apps principais (como navegação) e DecorPanels para elementos de interface, na forma de visualizações, que precisam ser colocados entre TaskPanels.

Implementar uma cena inicial dinâmica

Implemente uma cena Início composta por vários painéis de apps visíveis e interativos simultaneamente. Por exemplo, mapa, player de mídia e grade de apps.

Para fazer a transição de todos os painéis relevantes para as variantes iniciais opened ou default, configure _System_HomeEvent.

Aplicar sobreposições contextuais

Coloque elementos da interface que não sejam de apps, como widgets contextuais, branding personalizado e barras de arrastar que podem ser animadas em coordenação com as tarefas do app.

Use DecorPanels para todos os elementos puramente decorativos ou de hospedagem de widgets. Se um widget hospedar um app totalmente funcional e inicializável, o ideal é usar Panel > TaskPanel. Use DecorPanels para elementos de interface baseados em visualização quando a sobreposição precisar ser sincronizada com a sobreposição TaskPanel.

Criar interações complexas com painéis

Projete ações avançadas orientadas pelo usuário, como redimensionar dinamicamente um painel de app ou ajustar as visualizações do painel de instrumentos com base no conteúdo da tela principal.

Defina Events personalizados para acionar Transitions específicos que não são padrão do sistema.