Abbiamo terminato i livelli del modello e del modello della vista.
Passiamo ora al livello di visualizzazione.
Lo scopo di questo livello è informare il modello di vista sull'azione dell'utente.
Questo livello osserva il modello della vista e non contiene alcun tipo di logica applicativa.
Qui, all'interno del nostro pacchetto, creeremo un nuovo pacchetto chiamato screens all'interno di screens.
Iniziamo a creare i Composable.
Per prima cosa dobbiamo creare un nuovo file chiamato post item.
Iniziare con una nuova funzione compostabile chiamata post item.
Questa funzione prende come parametro un oggetto di tipo post.
Al suo interno.
Creeremo una nuova scheda compostabile e al suo interno inizieremo con una nuova colonna.
Abbiamo due testi, uno che mostra il titolo e uno che mostra il corpo.
Se torniamo al retrofit e al post, abbiamo ID, titolo e corpo.
Non è necessario visualizzare l'ID, ma il titolo e il corpo.
È molto semplice.
Dobbiamo accedere al titolo del post e lo stile
sarà material theme, dot typography, dot label large.
Un altro post di testo dot body e lo stile material theme dot typography dot small text
ok, questa colonna ha un modificatore dot padding 16 dpi e permettetemi di personalizzare questa scheda.
È quindi necessario aggiungere l'elevazione.
E il modificatore di elevazione è uguale alle impostazioni predefinite della carta.
Elevazione scheda punti otto dp modificatore modificatore punti imbottitura punti 12 dp riempimento punti larghezza massima.
Il secondo passo consiste nel creare un altro file chiamato postelenco.
È una nuova funzione componibile che prende come parametro un elenco di post.
All'interno di questo elenco di post.
Ultimo componibile.
Dobbiamo creare un colon pigro.
E all'interno dell'ambito di questo colon pigro, utilizzerò il parametro items with
list e passerò i post come parametro per questa funzione items.
Qui dobbiamo impostare l'elemento post post right composable e impostare nuovamente il post su post.
Il colon pigro è un composto che visualizza in modo efficiente un elenco di elementi a scorrimento verticale.
Compone e dispone solo gli elementi visibili, più alcuni elementi prima e
dopo gli elementi visibili, rendendolo efficiente per grandi insiemi di dati.
La funzione Items viene utilizzata all'interno della colonna lazy per iterare l'elenco dei post.
Prende un elenco e una funzione lambda per ogni elemento dell'elenco.
Esegue una funzione lambda per ogni post.
Nell'elenco dei post, chiama la funzione lambda, passando
il post come argomento all'interno della funzione lambda.
viene richiamato l'elemento post.
L'elemento post è un altro componibile che abbiamo creato in precedenza, usato per rendere un singolo elemento post.
Richiede un oggetto post come parametro.
Ora dobbiamo unire l'elenco dei post con l'elemento del post.
Per questo, creerò un nuovo file Kotlin.
Lo chiamerò post screen.
All'interno di questo file post screen, creerò una nuova funzione componibile, denominata post screen.
Prendendo come parametro un ViewModel di tipo post la modalità di
visualizzazione val posts equivale a ViewModel dot posts e post list.
Dobbiamo passare il post qui.
Non è necessario usare observe come stato, perché non stiamo osservando un elenco di dati in tempo reale.
Stiamo osservando dal ViewModel una variabile chiamata posts di tipo immutabile state of.
Quindi non abbiamo bisogno di usare l'osservatore come stato.
Sto recuperando la proprietà posts dal modello della vista post.
La proprietà post contiene lo stato corrente dell'oggetto elenco di post, che
ha definito prima che la proprietà posts sia una variabile di stato.
Se torniamo indietro, possiamo vedere che è di tipo mutable state of, quindi è una variabile di stato, il
che significa che qualsiasi modifica a questa variabile innescherà automaticamente una ricomposizione di qualsiasi componibile che la legga.
Questo schermo di posta è una composizione che dipende dal post, quindi qualsiasi
modifica della variabile post innescherà una ricomposizione automatica per lo schermo di posta.
Voglio quindi che comprendiate questa nota molto importante.
Di nuovo ragazzi, qualsiasi modifica all'oggetto post state, attiverà una ricomposizione automatica di questa schermata
di post, perché questa schermata di post legge i post dal ViewModel e dobbiamo passarli
al compositore di liste di post per creare una colonna Lazycolumn e aggiornare la lista.