android - Jetpack Compose 卡上的事件处理

标签 android kotlin event-handling android-jetpack-compose

我有一个音乐播放器应用程序 - 在我的屏幕上,我有显示有关轨道信息的卡片。当我点击一张卡片时,播放器应该播放它的轨道。

@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)
        }
    }
}
我尝试添加 Clickable在其Modifier像这样:clickable(onClick = {})为了让轨道播放,我需要我的 TrackCard 的另一个参数,即播放器本身。
由于我想将 UI 代码分开,我想知道是否可以添加一个事件监听器并从那里访问播放轨道? (我也想捕捉不同类型的事件,如长按触摸等,以进行不同的事件处理)
跟踪卡的初始化如下:
@Composable
private fun ResultList(model: PlayerModel) {
    with(model) {
            LazyColumn(state = rememberLazyListState()) {
                items(tracks) {
                    TrackCard(it)
                }
            }
        }
    }
}
我将如何做到这一点?

最佳答案

您可以像这样向卡片添加点击事件。将您想要包含的点击代码放入可点击函数中

Card(
modifier = Modifier.padding(5.dp).fillMaxWidth().clickable{ },
        contentColor = Color.Black       
    )

关于android - Jetpack Compose 卡上的事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67235817/

相关文章:

android - 对于 6220816 字节分配错误,将堆( fragment 情况)增加到 8.837MB

android - 拍照,旋转屏幕并返回 Activity 后,应用突然崩溃

android - 实际类型别名 'ApplicationContext' 没有对应的预期声明

javascript - 限制javascript中的事件传播

android - 如何使用数据绑定(bind)访问包含的布局内的 View

android - RocksDB IO错误: lock db/LOCK: No locks available

c# - Android TextView defStyle 参数被忽略?

android - findFragmentByTag 的单元测试条件

事件触发的 JavaScript Jquery 函数一次性执行,而不是在正确的时间执行

python - Tkinter 最大化/恢复/调整差异化大小