Ora le app per Android vengono eseguite su una vasta gamma di dispositivi (come smartphone, tablet, pieghevoli, computer, auto e TV) e modalità di visualizzazione a finestre su schermi di grandi dimensioni (come schermo diviso e finestre del computer). Gli sviluppatori devono creare app per Android che si adattino a qualsiasi dimensione dello schermo e della finestra, indipendentemente dall'orientamento del dispositivo. Paradigmi come la limitazione dell'orientamento e del ridimensionamento sono troppo restrittivi nel mondo multidevice di oggi.
Ignora le limitazioni relative a orientamento, ridimensionamento e proporzioni
Per le app che hanno come target Android 17 o versioni successive, le limitazioni relative a orientamento, ridimensionamento e proporzioni non si applicano più ai display la cui larghezza più piccola è superiore a 600 dp. Le app riempiono l'intera finestra di visualizzazione, indipendentemente dalle proporzioni o dall'orientamento preferito dall'utente, e non viene utilizzato il pillarbox.
Android 17 rimuove l'esclusione temporanea per gli sviluppatori dalle limitazioni di orientamento e ridimensionamento sui dispositivi con schermi grandi fornita in Android 16.
Questa modifica introduce un nuovo comportamento standard della piattaforma. Android sta passando a un modello in cui le app devono adattarsi a vari orientamenti, dimensioni di visualizzazione e proporzioni. Limitazioni come l'orientamento fisso o il ridimensionamento limitato ostacolano l'adattabilità dell'app. Rendi la tua app adattabile per offrire la migliore esperienza utente possibile.
Puoi anche testare questo comportamento utilizzando il framework di compatibilità delle app
e attivando il flag di compatibilità UNIVERSAL_RESIZABLE_BY_DEFAULT.
Modifiche che provocano un errore comuni
Ignorare le limitazioni di orientamento, ridimensionamento e proporzioni potrebbe influire sulla UI della tua app su alcuni dispositivi, in particolare sugli elementi progettati per layout di piccole dimensioni bloccati in orientamento verticale. Ad esempio, le app potrebbero presentare problemi come layout allungati e animazioni e componenti fuori schermo. Qualsiasi ipotesi tu faccia sul formato o sull'orientamento può causare problemi visivi con la tua app. Scopri di più su come evitare questi problemi e migliorare il comportamento adattivo della tua app.
Un problema comune sui dispositivi pieghevoli orizzontali o per i calcoli delle proporzioni in scenari come multi-window, finestre del desktop o display connessi, si verifica quando l'anteprima della videocamera appare allungata, ruotata o ritagliata. Questo problema si verifica spesso su dispositivi con schermi grandi e pieghevoli perché le app presuppongono relazioni fisse tra le funzionalità della fotocamera (come le proporzioni e l'orientamento del sensore) e le funzionalità del dispositivo (come l'orientamento del dispositivo e l'orientamento naturale). Scopri di più sulla gestione dell'anteprima della videocamera.
Se consenti la rotazione del dispositivo, si verifica una maggiore ricreazione dell'attività, che può comportare la perdita dello stato dell'utente se non viene conservato correttamente. Scopri come salvare correttamente lo stato dell'interfaccia utente in Salva stati UI.
Dettagli di implementazione
I seguenti attributi del manifest e API di runtime vengono ignorati sui dispositivi con schermo di grandi dimensioni in modalità a schermo intero e multi-finestra:
screenOrientationresizableActivityminAspectRatiomaxAspectRatiosetRequestedOrientation()getRequestedOrientation()
I seguenti valori per screenOrientation, setRequestedOrientation() e
getRequestedOrientation() vengono ignorati:
portraitreversePortraitsensorPortraituserPortraitlandscapereverseLandscapesensorLandscapeuserLandscape
Per quanto riguarda il ridimensionamento del display, android:resizeableActivity="false",
android:minAspectRatio e android:maxAspectRatio non hanno alcun effetto.
Eccezioni
Le limitazioni di orientamento, ridimensionamento e proporzioni di Android 17 non si applicano nelle seguenti situazioni:
- Giochi (in base alla bandiera
android:appCategory) - Utenti che attivano esplicitamente il comportamento predefinito dell'app nelle impostazioni delle proporzioni del dispositivo
- Schermi la cui larghezza più piccola è inferiore a
sw600dp