Com os apps Android agora sendo executados em vários dispositivos (como smartphones, tablets, dobráveis, computadores, carros e TVs) e modos de janelas em telas grandes (como tela dividida e janelas para computador), os desenvolvedores precisam criar apps Android que se adaptem a qualquer tamanho de tela e janela, independentemente da orientação do dispositivo. Paradigmas como restringir a orientação e o redimensionamento são muito restritivos no mundo multidevice de hoje.
Ignorar restrições de orientação, redimensionamento e proporção
Para apps direcionados ao Android 17 ou versões mais recentes, as restrições de orientação, redimensionamento e proporção não se aplicam mais a telas cuja menor largura seja maior que 600 dp. Os apps preenchem toda a janela de exibição, independente da proporção ou da orientação preferida do usuário, e não usam pillarboxing.
O Android 17 remove a desativação temporária para desenvolvedores das restrições de orientação e redimensionamento em dispositivos de tela grande que foi disponibilizada no Android 16.
Essa mudança introduz um novo comportamento padrão da plataforma. O Android está migrando para um modelo em que os apps precisam se adaptar a várias orientações, tamanhos de tela e proporções. Restrições como orientação fixa ou redimensionamento limitado dificultam a adaptabilidade do app. Deixe seu app adaptável para oferecer a melhor experiência possível aos usuários.
Também é possível testar esse comportamento usando o framework de compatibilidade de apps
e ativando a flag de compatibilidade UNIVERSAL_RESIZABLE_BY_DEFAULT.
Mudanças importantes comuns
Ignorar as restrições de orientação, redimensionamento e proporção pode afetar a interface do usuário do app em alguns dispositivos, especialmente elementos projetados para layouts pequenos bloqueados na orientação retrato. Por exemplo, os apps podem ter problemas como layouts esticados e animações e componentes fora da tela. Qualquer pressuposto que você faça sobre proporção ou orientação pode causar problemas visuais no app. Saiba como evitar esses problemas e melhorar o comportamento adaptável do app.
Um problema comum em dispositivos dobráveis no modo paisagem ou para cálculos de proporção em cenários como várias janelas, janelas de computador ou telas conectadas é quando a visualização da câmera aparece esticada, girada ou cortada. Esse problema geralmente acontece em dispositivos de tela grande e dobráveis porque os apps presumem relações fixas entre recursos da câmera (como proporção e orientação do sensor) e recursos do dispositivo (como orientação do dispositivo e orientação natural). Saiba mais sobre como gerenciar a visualização da câmera.
Permitir a rotação do dispositivo resulta em mais recriação de atividades, o que pode resultar na perda do estado do usuário se não for preservado adequadamente. Saiba como salvar corretamente o estado da interface em Salvar estados da interface.
Detalhes da implementação
Os seguintes atributos de manifesto e APIs de tempo de execução são ignorados em dispositivos de tela grande nos modos de tela cheia e várias janelas:
screenOrientationresizableActivityminAspectRatiomaxAspectRatiosetRequestedOrientation()getRequestedOrientation()
Os seguintes valores para screenOrientation, setRequestedOrientation() e getRequestedOrientation() são ignorados:
portraitreversePortraitsensorPortraituserPortraitlandscapereverseLandscapesensorLandscapeuserLandscape
Em relação ao redimensionamento da tela, android:resizeableActivity="false",
android:minAspectRatio e android:maxAspectRatio não têm efeito.
Exceções
As restrições de orientação, capacidade de redimensionamento e proporção do Android 17 não se aplicam nas seguintes situações:
- Jogos (com base na flag
android:appCategory) - Usuários que ativam explicitamente o comportamento padrão do app nas configurações de proporção do dispositivo
- Telas com largura mínima menor que
sw600dp