Il secondo problema è la sincronizzazione tra la schermata corrente e la barra di navigazione.
Ad esempio, se seleziono le impostazioni, si può notare che la barra di navigazione è ancora nella home.
Quindi, per risolvere questo problema e per effettuare la sincronizzazione tra l'elemento selezionato nella
barra di navigazione e la schermata attualmente visualizzata, aggiorneremo e modificheremo questo codice.
Quindi, all'interno della barra di navigazione inferiore, creeremo una voce Val nav
back stack da nav controller dot current back stack enter as state.
Qui si utilizza la voce corrente dello stack posteriore come funzione di
stato per osservare il controllore nav della voce corrente dello stack.
È l'oggetto controller nav, responsabile della gestione della navigazione all'interno
dell'applicazione e della voce di back stack corrente come stato.
Si tratta di una funzione responsabile della gestione e della restituzione di un oggetto di stato
che rappresenta la voce corrente del backstack, che contiene informazioni sulla destinazione corrente nel grafo
di navigazione; utilizzando la voce corrente dello stack come funzione di stato, è possibile osservare
le modifiche alla voce del backstack, ad esempio quando l'utente naviga verso una destinazione diversa.
Ciò consente di reagire agli eventi di navigazione e di aggiornare l'interfaccia utente di conseguenza.
Quindi, in Jetpack Compose, l'osservazione della voce corrente di Backstack è utile per gli scenari
in cui è necessario sincronizzare lo stato dell'interfaccia utente con lo stato di navigazione corrente.
Nel nostro caso, aggiorneremo l'elemento selezionato nella barra
di navigazione inferiore in base alla destinazione corrente.
Poi dobbiamo ottenere il percorso corrente.
Val.
Percorso attuale.
Nav.
Backstack.
Destinazione di ingresso del percorso.
Questa riga recupera il percorso della destinazione corrente dalla voce osservata di Nav Backstack.
Voce Nav Backstack.
È la voce di Backstack corrente osservata durante la voce
di Backstack corrente come stato e il punto interrogativo.
Si tratta di un operatore di chiamata sicura in Kotlin.
Consente di accedere in modo sicuro alle proprietà o di chiamare metodi su un oggetto che potrebbe essere nullo e la destinazione.
La proprietà di una voce del backstack nav che rappresenta
la destinazione corrente nel grafo di navigazione e la radice.
È la proprietà della destinazione che fornisce la radice associata.
Quindi, se andiamo alla voce Backstack, se andiamo alla voce Nav Backstack corrente,
possiamo vedere che la destinazione è una proprietà della classe Nav Backstack.
Quindi utilizzerò questa proprietà e la destinazione nav.
Se si va alla destinazione nav e si cerca il percorso, lo si può trovare qui come stringa.
In questo modo si osserva la voce corrente di Backstack e si ottiene il percorso attualmente visualizzato.
Ora cambieremo l'elemento selezionato e modificheremo il codice.
Lo sposterò qui e rimuoverò l'elemento selezionato, ricordando lo stato mutabile Saveable di e
modificherò qui l'elemento selezionato, cambiandolo in uguale agli elementi della navigazione, con l'indice
del punto di primo e il percorso del punto uguale al percorso corrente.
Qui ottengo l'indice del percorso corrente.
Occorre poi creare una variabile chiamata elemento nav selezionato, ricordando Saveable.
Utilizzeremo lo stato mutabile di e imposteremo Selecteditem maggiore o uguale a zero.
Poi ha selezionato l'elemento zero.
Ok.
Quindi spostarsi verso il basso e modificare questo onclick.
Imposta la voce di navigazione selezionata come indice.
Ok, testiamo la nostra applicazione dopo la modifica del codice.
Eccoci qua.
Selezionando il profilo, si possono vedere le impostazioni del profilo.
Se si va alla home si può notare che la barra di navigazione è aggiornata.
Andare alle impostazioni.
Si può notare che la barra di navigazione si sta aggiornando.
Vai a casa.
Ed eccoci qui.
Ok.
In questo modo si aggiorna e si sincronizza la schermata con la barra di navigazione inferiore.