בניית מסך פרטים

הרבה אפליקציות לטלוויזיה כוללות דפי פרטי תוכן עם מטא-נתונים רלוונטיים לתוכן מסוים (למשל, סרט ספציפי). אפשר להטמיע דפי פרטים כפונקציה קומפוזבילית, שמקבלת מטא-נתונים של התוכן שנבחר כארגומנט.

הקוד הבא הוא הטמעה אופיינית של מסך הפרטים. הוא טוען תמונה של הסרט שצוין עם השם והתיאור שלו. המשתמש יכול לעבור למסך הנגן, למשל על ידי לחיצה על כפתור להפעלת הסרט. כדי לטפל בפעולה הזו ולבצע את המעבר בין המסכים, צריך להגדיר פונקציית קריאה חוזרת.

@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))
            }
        }
    }
}