O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Personalização de painel duplo

Android 12 apresenta um novo design de painel duplo, com um menu L0 estática à esquerda e um painel de conteúdo à direita. Este recurso apresenta muitas novas opções de personalização. Este artigo detalha esses recursos e explica como você pode personalizar suas próprias preferências.

Reverter para painel único

Por padrão, CarSettings agora exibe a visualização de painel duplo quando a janela do aplicativo é maior ou igual a 1400 dp de largura e a visualização de painel único caso contrário. Para personalizar isso para um dispositivo específico, use um Runtime Resource Overlay (RRO) para definir os valores de configuração necessários:

Valor Descrição
config_global_force_single_pane Definir a true , se todo o aplicativo é executado na configuração de painel único.
config_homepage_fragment_class Especifica o fragmento inicial da página inicial. No painel duplo, isso é usado para o fragmento inicial no painel de conteúdo. No painel único, deve ser o fragmento da página inicial.

Chaves de cabeçalho

Como diferentes atividades CarSettings podem ter um IA personalizado, um mapeamento de chave de cabeçalho é fornecido para simplificar as personalizações. Em AndroidManifest.xml , todas as atividades que suporta painel duplo tem uma TOP_LEVEL_HEADER_KEY especificado em seus metadados. Este valor aponta para uma chave especificada no res/values/header_keys.xml , o qual está mapeado para a chave de preferência do item do menu de nível superior que o fragmento a partir cai sob. Portanto, se o fragmento a partir de uma actividade é alterada ou o IA é rearranjado de tal modo que um fragmento particular cai sob uma preferência diferente de nível superior, o mapeamento relevante (s) no header_keys.xml arquivo pode ser actualizado para especificar o valor correcto .

Personalize o layout da atividade

O layout para BaseCarSettingsActivity está localizado no res/layout/car_setting_activity e nestas seções:

Valor Descrição
top_level_menu Fragmento de menu de nível superior mostrado em configurações de painel duplo. Largura desta seção é especificado por top_level_menu_width . Um layout de base do chassi (com barra de ferramentas) envolve esta visualização.
top_level_divider Linha vertical que divide os dois painéis e cuja largura você pode personalizar com top_level_divider_width .
fragment_container_wrapper Layout de invólucro para o painel de conteúdo (ou o painel principal em uma configuração de painel único). Um layout de base do chassi (com barra de ferramentas) envolve essa visualização.
settings_focus_parking_view Implementação personalizada do FocusParkingView para manter o foco rotativo quando necessário.
fragment_container Recipiente de conteúdo principal. Fragmentos de conteúdo usam isso como layout de destino.
restricted_message Vista bloqueio UX-restrito a ser mostrado em casos de BaseFragment .

Layout de painel Figura 1. dupla

Preferências de nível superior

Preferências

As preferências de nível superior são CarUiPreferences personalizadas com um layout ligeiramente modificado para alterar a altura de preferência e a forma do fundo. Existem muitas maneiras diferentes de personalizar a aparência dessas preferências:

Valor Descrição
res/layout/top_level_preference.xml Overlay todo o layout preferência.
top_level_preference_min_height Altura mínima da preferência de nível superior. Dependendo do conteúdo (por exemplo, uma legenda está presente), as preferências podem ser mais altas do que este valor.
top_level_preference_corner_radius Raio de arredondamento de esquina.
top_level_preference_background Plano de fundo das preferências de nível superior quando não destacadas no momento.
top_level_preference_highlight Plano de fundo das preferências de nível superior quando destacado.

Ícones

A Figura 2 ilustra como os ícones de nível superior agora consistem em um ícone de vetor dentro de uma forma de plano de fundo colorido. Esta forma está atualmente configurada para suportar uma forma oval ou retangular. Por padrão, a forma é definida como oval.

Para alterar o padrão, modifique o valor em config_top_level_icon_shape (onde 0 é retângulo e 1 é oval). Os ícones são criados por insetting o ícone de novos conhecimentos por top_level_foreground_icon_inset da forma fundo. Cada ícone de nível superior tem uma cor de primeiro plano especificada em res/values/colors.xml e uma cor de fundo especificada no res/color pasta.

Para criar uma aparência personalizada, você pode substituir todos os valores de cor.

Componentes preferenciais de nível superior Figura 2.

Ícones para as preferências injetados que se enquadram nas categorias especificadas pelo config_top_level_injection_categories também são tratados como ícones de nível superior. Os ícones fornecidos são inseridos com o mesmo valor e com a mesma forma especificada para todos os outros ícones de nível superior (veja acima). No entanto, o plano de fundo é determinado observando-se os seguintes atributos nesta ordem:

  1. com.android.settings.bg.argb Meta dados a partir da aplicação da injecção.
  2. com.android.settings.bg.hint Meta dados a partir da aplicação da injecção.
  3. top_level_injected_default_background especificado no res/values/colors.xml .

Para ignorar os dados do aplicativo injetáveis e sempre usar o fundo padrão, conjunto config_top_level_injection_background_always_use_default a true .