[新增] 让Compose的封面组件支持更多参数

This commit is contained in:
HapeLee
2025-11-30 03:18:33 +08:00
parent 6f5606b9e1
commit de9e9b21c2
@@ -32,13 +32,16 @@ private val DefaultCoverModifier = Modifier
@Composable
fun Cover(
path: String?,
path: Any?,
modifier: Modifier = DefaultCoverModifier,
badgeContent: (@Composable RowScope.() -> Unit)? = null
badgeContent: (@Composable RowScope.() -> Unit)? = null,
loadOnlyWifi: Boolean = false,
sourceOrigin: String? = null,
onLoadFinish: (() -> Unit)? = null
) {
Box(
modifier = modifier
) {
val context = LocalContext.current
Box(modifier = modifier) {
Box(
modifier = Modifier
.fillMaxSize()
@@ -47,12 +50,25 @@ fun Cover(
contentAlignment = Alignment.Center
) {
if (path == null) {
Icon(Icons.Default.Book, null, tint = MaterialTheme.colorScheme.surfaceContainerHighest, modifier = Modifier.size(24.dp))
Icon(
Icons.Default.Book,
contentDescription = null,
tint = MaterialTheme.colorScheme.surfaceContainerHighest,
modifier = Modifier.size(24.dp)
)
} else {
AsyncImage(
model = ImageRequest.Builder(LocalContext.current)
.data(path)
model = ImageRequest.Builder(context)
.data(path) // 可以是 URL、File、Uri、DrawableRes
.crossfade(true)
.apply {
if (sourceOrigin != null) setParameter("sourceOrigin", sourceOrigin)
if (loadOnlyWifi) setParameter("loadOnlyWifi", true)
}
.listener(
onSuccess = { _, _ -> onLoadFinish?.invoke() },
onError = { _, _ -> onLoadFinish?.invoke() }
)
.build(),
contentDescription = null,
contentScale = ContentScale.Crop,