A partire da Android 10 (livello API 29), il sistema Android supporta la navigazione completamente basata sui gesti. Gli sviluppatori di app devono eseguire due operazioni per garantire la compatibilità delle proprie app con questa funzionalità:
- Estendere i contenuti dell'app da bordo a bordo.
- Gestire i gesti delle app in conflitto.
Inoltre, Android 13 (livello API 33) introduce un gesto Indietro predittivo per i dispositivi Android come smartphone, schermi di grandi dimensioni e pieghevoli, che fa parte di una release pluriennale. Gli sviluppatori di app possono adottare misure per garantire che le loro app supportino il gesto Indietro predittivo.
Fornire contenuti dell'app da bordo a bordo
Per sfruttare lo spazio aggiuntivo dello schermo reso disponibile dalla barra di navigazione mobile, devi configurare alcune modifiche nella tua app.
Per maggiori dettagli, consulta la pagina Visualizzare i contenuti da bordo a bordo nell'app.
Gestire i gesti delle app in conflitto
Il modello di navigazione tramite gesti potrebbe essere in conflitto con i gesti utilizzati in precedenza dagli sviluppatori di app. Di conseguenza, potresti dover apportare modifiche all'interfaccia utente della tua app.
Conflitti con i gesti Indietro
Il nuovo gesto di sistema per Indietro è uno scorrimento verso l'interno dal bordo sinistro o dal
bordo destro dello schermo. Questo potrebbe interferire con gli elementi di navigazione dell'app in
queste aree. Per mantenere la funzionalità degli elementi sui bordi sinistro e destro
dello schermo, disattiva il gesto Indietro in modo selettivo indicando al
sistema le regioni che devono ricevere l'input tattile. Puoi farlo passando un
List<Rect> all'View.setSystemGestureExclusionRects()
API introdotta in Android 10. Questo metodo è disponibile anche in ViewCompat a partire da
androidx.core:core:1.1.0-dev01.
Ad esempio:
Kotlin
var exclusionRects = listOf(rect1, rect2, rect3) fun onLayout( changedCanvas: Boolean, left: Int, top: Int, right: Int, bottom: Int) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects) } fun onDraw(canvas: Canvas) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects) }
Java
List<Rect> exclusionRects; public void onLayout( boolean changedCanvas, int left, int top, int right, int bottom) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects); } public void onDraw(Canvas canvas) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects); }
Conflitti con i gesti Home o di cambio rapido
I nuovi gesti di sistema per Home e cambio rapido prevedono entrambi scorrimenti nella parte inferiore dello schermo nello spazio precedentemente occupato dalla barra di navigazione. Le app non possono disattivare questi gesti come possono fare con il gesto Indietro.
Per attenuare questo problema, Android 10 introduce l'
WindowInsets.getMandatorySystemGestureInsets()
API, che informa le app sulle soglie di riconoscimento tattile.
Giochi e altre app non basate su View
I giochi e le altre app che non hanno una gerarchia di visualizzazioni spesso richiedono all'utente di
scorrere il dito vicino alle aree dei gesti di sistema. In questi casi, i giochi possono utilizzare
Window.setSystemGestureExclusionRects()
per escludere le aree che si sovrappongono alle aree riservate ai gesti di sistema. I giochi
devono assicurarsi di escludere queste aree solo quando necessario, ad esempio durante
il gameplay.
Se un gioco richiede all'utente di scorrere il dito vicino all'area del gesto Home, l'app può richiedere di essere disposta in modalità immersiva. In questo modo, i gesti di sistema vengono disattivati mentre l'utente interagisce con il gioco, ma l'utente può riattivare i gesti di sistema scorrendo il dito dal basso dello schermo.
Aggiornare l'app per supportare il gesto Indietro predittivo
Android 13 (livello API 33) introduce un gesto Indietro predittivo per i dispositivi Android come smartphone, schermi di grandi dimensioni e pieghevoli. Il gesto Indietro predittivo fa parte di una release pluriennale. Una volta implementata completamente, questa funzionalità consente agli utenti di visualizzare l'anteprima della destinazione o di un altro risultato di un gesto Indietro prima di completarlo, consentendo loro di decidere se continuare o rimanere nella visualizzazione corrente.
Per maggiori dettagli, consulta la pagina Aggiungere il supporto per il gesto Indietro predittivo.
Risorse aggiuntive
Per saperne di più sulla navigazione tramite gesti, consulta le seguenti risorse: