As restrições de orientação e redimensionamento são ignoradas

Com os apps Android agora sendo executados em vários dispositivos (como smartphones, tablets, dobráveis, computadores, carros e TVs) e modos de janela em telas grandes (como tela dividida e modo janela 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 restrição de orientação e redimensionamento são muito restritivos no mundo multidispositivo atual.

Ignorar restrições de orientação, redimensionamento e proporção

Para apps direcionados ao Android 17 (nível 37 da API) ou 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, independentemente da proporção ou da orientação preferida do usuário, e o pillarboxing não é usado.

O Android 17 remove a opção de desativação temporária do desenvolvedor para restrições de orientação e redimensionamento em dispositivos de tela grande que foi fornecida 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 ao usuário.

Você também pode 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 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 suposição que você fizer sobre a proporção ou a 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 dobráveis horizontais ou para cálculos de proporção em cenários como várias janelas, modo janela para 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 os recursos da câmera (como proporção e orientação do sensor) e os 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 corretamente. Saiba como salvar corretamente o estado da interface em Salvar estados da interface.

Detalhes de 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 modo de várias janelas:

Os seguintes valores de screenOrientation, setRequestedOrientation() e getRequestedOrientation() são ignorados:

  • portrait
  • reversePortrait
  • sensorPortrait
  • userPortrait
  • landscape
  • reverseLandscape
  • sensorLandscape
  • userLandscape

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, redimensionamento e proporção do Android 17 não se aplicam nas seguintes situações:

  • Jogos (com base na android:appCategory flag)
  • Usuários que ativam explicitamente o comportamento padrão do app nas configurações de proporção do dispositivo
  • Telas cuja menor largura é menor que sw600dp