多くの TV アプリには、特定のコンテンツ(特定の映画)に関連するメタデータを含むコンテンツの詳細ページがあります。詳細ページは、選択したコンテンツのメタデータを引数として受け取るコンポーズ可能な関数として実装できます。
次のコードは、詳細画面の一般的な実装を示しています。指定された映画の画像と、そのタイトル、説明を読み込みます。ユーザーはプレーヤー画面に画面を遷移できます。プレーヤー画面は、ボタンをクリックして映画の再生を開始することでトリガーできます。このアクションを処理して画面を遷移させるには、コールバック関数を設定します。
@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)
}
}
}
}