詳細画面を作成する

多くの TV アプリには、特定のコンテンツ(特定の映画など)に関連するメタデータを含むコンテンツ詳細ページが含まれています。詳細ページは、選択したコンテンツのメタデータを引数として受け取るコンポーズ可能な関数として実装できます。

次のコードは、詳細画面の一般的な実装です。指定された映画の画像をタイトルと説明とともに読み込みます。ユーザーは、ボタンをクリックして動画の再生を開始することで、プレーヤー画面に画面遷移できます。このアクションを処理して画面遷移を行うには、コールバック関数を設定します。

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