Creare una schermata dei dettagli

Molte app TV includono pagine dei dettagli dei contenuti con metadati pertinenti per un determinato contenuto (ad esempio un film specifico). Le pagine dei dettagli possono essere implementate come una funzione componibile, che accetta i metadati dei contenuti selezionati come argomento.

Il seguente codice è un'implementazione tipica della schermata dei dettagli. Carica un'immagine del film specificato con il titolo e la descrizione. L'utente può eseguire una transizione alla schermata del player, che può essere attivata facendo clic su un pulsante per avviare la riproduzione del filmato. Puoi gestire questa azione per eseguire la transizione della schermata impostando una funzione di callback.

@Composable
fun DetailsScreen(
    movie: Movie,
    modifier: Modifier = Modifier,
    onStartPlayback: (Movie) -> Unit = {}
) {
    Box(modifier = modifier.fillMaxSize()) {
        AsyncImage(
            modifier = Modifier.fillMaxSize(),
            model = movie.backgroundImageUrl,
            contentDescription = null,
            contentScale = ContentScale.Crop,
        )
        Column(modifier = Modifier.padding(32.dp)) {
            Text(
                text = movie.title,
                style = MaterialTheme.typography.headlineMedium
            )
            Text(text = movie.description)
            Button(onClick = { onStartPlayback(movie) }) {
                Text(text = stringResource(id = R.string.startPlayback))
            }
        }
    }
}