我有一个音乐播放器应用程序 - 在我的屏幕上,我有卡片显示有关曲目的信息。当我点击一个卡片时,播放器应该播放它的曲目。
@Composable
fun TrackCard(track: Track) {
Card(
modifier = Modifier.padding(5.dp).fillMaxWidth(),
contentColor = Color.Black
) {
Column(modifier = Modifier.padding(10.dp)) {
ArtistName(text = track.artist.name)
Headline(text = track.title)
AlbumName(text = track.album.title)
}
}
}
我尝试通过在它的Modifier
上添加Clickable
来实现,代码如下:clickable(onClick = {})
。
为了让音轨播放,我需要为我的TrackCard添加另一个参数,即播放器本身。
由于我想保持UI代码分离,我想知道是否能够添加事件监听器并从那里访问播放音轨?(此外,我还想捕获不同类型的事件,比如长按触摸等,以处理不同类型的事件。)
音轨卡片是这样初始化的:
@Composable
private fun ResultList(model: PlayerModel) {
with(model) {
LazyColumn(state = rememberLazyListState()) {
items(tracks) {
TrackCard(it)
}
}
}
}
}
我该怎么做到这一点?
combinedClickable
目前(1.0.0-beta05
)被标记为@ExperimentalFoundationApi
。 - Gabriele Mariotti