Ora che le app Android vengono eseguite su una varietà di dispositivi (ad es. smartphone, tablet, pieghevoli, computer desktop, auto e TV) e modalità di visualizzazione a finestre su schermi di grandi dimensioni (ad es. schermo diviso e visualizzazione a finestre su computer desktop), gli sviluppatori devono creare app Android che si adattino a qualsiasi dimensione dello schermo e della finestra, indipendentemente dall'orientamento del dispositivo. I paradigmi come la limitazione dell'orientamento e del ridimensionamento sono troppo restrittivi nel mondo multi-dispositivo di oggi.
Ignorare le limitazioni relative a orientamento, ridimensionamento e proporzioni
Per le app che hanno come target Android 17 (livello API 37) o versioni successive, le limitazioni relative a orientamento, ridimensionamento e proporzioni non si applicano più ai display la cui larghezza minima è 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 pillarboxing.
Android 17 rimuove il ritiro temporaneo per gli sviluppatori per le limitazioni relative a orientamento e ridimensionamento sui dispositivi con schermi di grandi dimensioni fornito 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 del display e proporzioni. Limitazioni come l'orientamento fisso o il ridimensionamento limitato ostacolano l'adattabilità delle 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
L'ignorare le limitazioni relative a orientamento, ridimensionamento e proporzioni potrebbe influire sull'interfaccia utente della tua app su alcuni dispositivi, in particolare sugli elementi progettati per layout piccoli bloccati in orientamento verticale. Ad esempio, le app potrebbero presentare problemi come layout allungati e animazioni e componenti fuori schermo. Qualsiasi ipotesi che fai sulle proporzioni 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 pieghevoli orizzontali o per i calcoli delle proporzioni in scenari come multi-finestra, visualizzazione a finestre su computer desktop o display collegati è quando l'anteprima della fotocamera appare allungata, ruotata o ritagliata. Questo problema si verifica spesso sui dispositivi con schermi di grandi dimensioni 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 fotocamera.
Consentire la rotazione del dispositivo comporta 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 Salvare gli stati dell'interfaccia utente.
Dettagli di implementazione
I seguenti attributi del manifest e API di runtime vengono ignorati sui dispositivi con schermi 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 relative a orientamento, ridimensionamento e proporzioni di Android 17 non si applicano nelle seguenti situazioni:
- Giochi (in base al
android:appCategoryflag) - Utenti che attivano esplicitamente il comportamento predefinito dell'app nelle impostazioni delle proporzioni del dispositivo
- Schermi la cui larghezza minima è inferiore a
sw600dp