Создайте экран подробностей

Многие телевизионные приложения включают страницы с подробным описанием контента с соответствующими метаданными для конкретного фрагмента (например, конкретного фильма). Страницы с подробным описанием можно реализовать как составную функцию, принимающую метаданные выбранного контента в качестве аргумента.

Следующий код представляет собой типичную реализацию экрана с подробностями. Он загружает изображение указанного фильма с его названием и описанием. Пользователь может перейти к экрану проигрывателя, нажав кнопку для начала воспроизведения фильма. Вы можете обработать это действие, чтобы осуществить переход, установив функцию обратного вызова.

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

Многие телевизионные приложения включают страницы с подробным описанием контента с соответствующими метаданными для конкретного фрагмента (например, конкретного фильма). Страницы с подробным описанием можно реализовать как составную функцию, принимающую метаданные выбранного контента в качестве аргумента.

Следующий код представляет собой типичную реализацию экрана с подробностями. Он загружает изображение указанного фильма с его названием и описанием. Пользователь может перейти к экрану проигрывателя, нажав кнопку для начала воспроизведения фильма. Вы можете обработать это действие, чтобы осуществить переход, установив функцию обратного вызова.

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