fix: 开源许可列表项改用 Card(onClick) 以支持点击动画

原实现使用 Column + Modifier.clickable 在 LazyColumn 中无法显示
ripple 反馈。改用 Material3 Card 的 onClick 参数后,点击水波纹
动画正常显示。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
xfy 2026-06-01 11:42:49 +08:00
parent acb737dd25
commit c72120ee0a

View File

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