From c72120ee0aec959ea33bf2fda6e22a9d1b45f512 Mon Sep 17 00:00:00 2001 From: xfy Date: Mon, 1 Jun 2026 11:42:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BC=80=E6=BA=90=E8=AE=B8=E5=8F=AF?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B9=E6=94=B9=E7=94=A8=20Card(onClick)?= =?UTF-8?q?=20=E4=BB=A5=E6=94=AF=E6=8C=81=E7=82=B9=E5=87=BB=E5=8A=A8?= =?UTF-8?q?=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原实现使用 Column + Modifier.clickable 在 LazyColumn 中无法显示 ripple 反馈。改用 Material3 Card 的 onClick 参数后,点击水波纹 动画正常显示。 Co-Authored-By: Claude Opus 4.7 (1M context) --- .../plus/rua/project/ui/LicensesScreen.kt | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/core/src/main/kotlin/plus/rua/project/ui/LicensesScreen.kt b/core/src/main/kotlin/plus/rua/project/ui/LicensesScreen.kt index 149a7e9..a927b58 100644 --- a/core/src/main/kotlin/plus/rua/project/ui/LicensesScreen.kt +++ b/core/src/main/kotlin/plus/rua/project/ui/LicensesScreen.kt @@ -1,13 +1,14 @@ package plus.rua.project.ui import androidx.compose.foundation.Canvas -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.IconButton @@ -21,6 +22,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.StrokeCap import androidx.compose.ui.unit.dp +import plus.rua.project.util.logd /** * 开放源代码许可页面,展示项目使用的第三方库及其许可证。 @@ -70,9 +72,17 @@ fun LicensesScreen( .padding(innerPadding) ) { items(licenses) { item -> - Column { + Card( + onClick = { + logd("LicensesScreen") { "clicked: ${item.library}" } + }, + colors = CardDefaults.cardColors( + containerColor = MaterialTheme.colorScheme.surfaceContainerHigh + ), + elevation = CardDefaults.cardElevation(defaultElevation = 0.dp), + modifier = Modifier.padding(horizontal = 16.dp, vertical = 4.dp) + ) { ListItem( - modifier = Modifier.clickable { }, headlineContent = { Text( text = item.library, @@ -87,10 +97,6 @@ fun LicensesScreen( ) } ) - HorizontalDivider( - modifier = Modifier.padding(horizontal = 16.dp), - color = MaterialTheme.colorScheme.outlineVariant - ) } } }