A partire da Android 10 (livello API 29), il sistema Android supporta la navigazione completamente basata sui gesti. Gli sviluppatori di app devono fare due cose per assicurarsi che le loro app siano compatibili con questa funzionalità:
- Estendi i contenuti dell'app da un lato all'altro.
- Gestire i gesti delle app in conflitto.
Inoltre, Android 13 (livello API 33) introduce un gesto predittivo Indietro per 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 assicurarsi che le app supportino il gesto Indietro predittivo.
Fornisci contenuti dell'app edge-to-edge
Per sfruttare lo spazio aggiuntivo sullo schermo messo a disposizione dalla barra di navigazione mobile, devi configurare alcune modifiche nell'app.
Per maggiori dettagli, vedi Visualizzare i contenuti edge-to-edge nell'app.
Gestire i gesti delle app in conflitto
Il modello di navigazione tramite gesti potrebbe essere in conflitto con i gesti precedentemente utilizzati 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 tornare indietro consiste nello scorrere verso l'interno dal bordo sinistro o
destro dello schermo. Ciò potrebbe interferire con gli elementi di navigazione
delle 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 quali regioni devono ricevere l'input tocco. Puoi farlo passando un
List<Rect>
all'API View.setSystemGestureExclusionRects()
introdotta in Android 10. Questo metodo è disponibile anche in ViewCompat
dal giorno
androidx.core:core:1.1.0-dev01
.
Ecco alcuni esempi:
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 per il passaggio rapido
I nuovi gesti di sistema per la schermata Home e per il passaggio rapido prevedono entrambi scorrimenti nella parte inferiore dello schermo nello spazio precedentemente occupato dalla barra di navigazione. Le app non possono disattivare questi gesti a differenza del gesto Indietro.
Per ovviare a questo problema, Android 10 introduce l'API WindowInsets.getMandatorySystemGestureInsets()
, che informa le app delle soglie di riconoscimento del tocco.
Giochi e altre app senza visualizzazione
I giochi e altre app che non dispongono di una gerarchia di visualizzazione spesso richiedono all'utente di
scorrere vicino alle aree del sistema relative ai gesti. In questi casi, i giochi possono usare l'icona Window.setSystemGestureExclusionRects()
per escludere aree che si sovrappongono ad aree riservate ai gesti di sistema. I giochi devono escludere queste aree solo quando necessario, ad esempio durante il gameplay.
Se un gioco richiede all'utente di scorrere vicino all'area dei gesti della casa, l'app può richiedere di essere implementata in modalità immersiva. In questo modo vengono disattivati i gesti di sistema mentre l'utente interagisce con il gioco, ma l'utente può riattivarli facendo scorrere il dito dalla parte inferiore dello schermo.
Aggiorna 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 arretrato predittivo fa parte di una release pluriennale. Quando completamente implementata, questa funzionalità consente agli utenti di visualizzare in anteprima la destinazione o un altro risultato di un gesto Indietro prima di completarla completamente, consentendo loro di decidere se continuare o rimanere nella visualizzazione corrente.
Per maggiori dettagli, vedi Aggiungere il supporto per il gesto Indietro predittivo.
Risorse aggiuntive
Per ulteriori informazioni sulla navigazione tramite gesti, consulta quanto segue: