Tạo màn hình chi tiết

Nhiều ứng dụng truyền hình có các trang thông tin chi tiết nội dung kèm theo siêu dữ liệu liên quan cho một nội dung nhất định (tức là một bộ phim cụ thể). Bạn có thể triển khai các trang thông tin chi tiết dưới dạng một hàm composable, lấy siêu dữ liệu của nội dung đã chọn làm đối số.

Đoạn mã sau đây là cách triển khai thông thường của màn hình chi tiết. Thành phần này tải hình ảnh của bộ phim đã cho cùng với tên và nội dung mô tả. Người dùng có thể chuyển đổi màn hình sang màn hình trình phát. Thao tác này có thể được kích hoạt bằng cách nhấp vào một nút để bắt đầu phát phim. Bạn có thể xử lý hành động này để chuyển đổi màn hình bằng cách đặt hàm 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))
            }
        }
    }
}