La nostra app attuale ha un problema.
Se l'utente fa clic sul pulsante, il contatore viene incrementato e
visualizzato normalmente nel logcat, ma non viene aggiornata l'interfaccia utente.
Quindi il contatore qui, che è un testo componibile, non viene aggiornato.
Ciò è dovuto all'assenza di oggetti di stato.
Si noti che non tutti i valori avviano una ricomposizione quando cambiano.
Solo gli Stati possono farlo.
Qui stiamo modificando il conteggio delle variabili.
Ma count è una variabile normale, non un oggetto di stato.
Vorrei che vi concentraste con me per capire la relazione tra stato e UI.
Questa è l'interfaccia utente e questo è lo stato.
Pensate a uno stato superiore, un livello superiore che è uno stato.
Ogni modifica dell'interfaccia utente influisce sullo stato e ogni modifica dello stato influisce sull'interfaccia utente.
Ogni applicazione interattiva ha dati sottostanti che guidano le modifiche dell'interfaccia utente.
Compose fornisce uno stato di sola lettura e uno stato immutabile che viene letto.
Scrivere gli oggetti.
Pensate al contatore, che è il testo dell'interfaccia utente e il testo dell'applicazione, e al conteggio dei valori.
Ricorda lo stato mutabile di zero, che è un oggetto di stato.
Si tratta di un oggetto di stato contenente numeri interi, e questa è
la relazione tra l'oggetto di stato count text composable e count variable mutable.
Qualsiasi modifica dello stato mutabile da 0 a 1, ad
esempio, rifletterà il testo del conteggio componibile nell'interfaccia utente.
Questo è ciò di cui abbiamo bisogno nella nostra applicazione.
Qualsiasi cambiamento nel conteggio deve essere riflesso nell'interfaccia utente
e qualsiasi cambiamento nell'interfaccia utente deve riflettere lo stato.
Per farlo, utilizzeremo gli oggetti di stato.
Voglio che vi concentriate con me perché è una nota molto
importante e queste lezioni e questa sezione sono molto importanti.
E molti sviluppatori hanno problemi con lo stato per creare uno stato.
Non c'è nulla di complicato.
È sufficiente chiamare la funzione mutable state, che restituisce un osservabile di tipo mutable state.
Qui lo cambierò in var count mutable state of and.
In Kotlin, l'interfaccia è un modo per definire un
contratto a cui altre classi o interfacce devono aderire.
In questo codice, lo stato mutabile è un'interfaccia che estende un'altra interfaccia, che è lo stato.
L'interfaccia state definisce probabilmente un valore di proprietà di sola lettura di tipo T.
Ora lo stato mutabile estende lo stato e aggiunge la mutabilità alla proprietà value.
Dichiara che qualsiasi classe che implementa lo stato mutabile deve
fornire una proprietà scrivibile denominata value di tipo T.
È necessario capire che qualsiasi classe che implementa lo stato mutabile deve fornire sia un
getter che un setter per la proprietà value, consentendone la lettura e la modifica.
È utile per rappresentare dati statici che possono essere modificati nel tempo.
Lo stato mutabile di è una funzione chiamata che tipicamente proviene dalla State Library di
Jetpack Compose, un moderno toolkit UI per la costruzione di interfacce utente native per Android.
Questa funzione crea un supporto di stato immutabile che avvolge
il valore iniziale fornito, che in questo caso è zero.
Stato essenzialmente mutabile che crea un contenitore per contenere un valore che può essere modificato nel tempo.
Il valore iniziale in questo caso è zero e viene passato come argomento,
mentre il valore all'interno del contenitore può essere aggiornato successivamente nel programma.
È comunemente usato in Jetpack Compose per gestire lo stato dei componenti
dell'interfaccia utente e per attivare la ricomposizione quando lo stato cambia.
Quindi, per utilizzare lo stato mutabile di e utilizzare il contatore, dobbiamo utilizzare il valore del punto.
E qui dobbiamo ottenere il valore, perché abbiamo usato lo stato mutabile.
Quindi è necessario impostarlo e utilizzare il valore invece di usare direttamente la variabile.
Eseguiamo la nostra applicazione ed eccoci qui.
Questa è la nostra bella applicazione.
Qui si usa lo stato, che è lo stato mutabile di e il valore iniziale è zero.
Ora proviamo ad aumentare il contatore.
Fare clic su di esso.
Ops.
Non viene aggiornata né l'interfaccia utente né il Lookat e la variabile all'interno dell'elemento.
Guardate cosa sta succedendo.
Poiché c'è un errore nel codice precedente, è necessario
sapere che la ricomposizione può avvenire in qualsiasi momento.
Il contatore componibile può essere ricomposto in qualsiasi momento e quando si modifica la variabile del conteggio, la
funzione del contatore può essere ricomposta e verrà eseguita di nuovo, il che significa che tutto il codice
al suo interno verrà rieseguito e che il conteggio delle conseguenze verrà reimpostato su 0 o 1.
Come si fa a ricordare uno stato anche quando la funzione viene rieseguita?