Просмотр исходного кода

[优化] 封面不透明问题

HapeLee 6 месяцев назад
Родитель
Сommit
0fb59eaa98

+ 3 - 2
app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt

@@ -36,6 +36,7 @@ import io.legado.app.data.entities.BookGroup
 import io.legado.app.ui.config.bookshelfConfig.BookshelfConfig
 import io.legado.app.ui.theme.LegadoTheme
 import io.legado.app.ui.widget.components.card.GlassCard
+import io.legado.app.ui.widget.components.card.NormalCard
 import io.legado.app.ui.widget.components.card.TextCard
 import io.legado.app.ui.widget.components.cover.CoilBookCover
 import io.legado.app.ui.widget.components.cover.BookshelfCover
@@ -70,7 +71,7 @@ fun BookshelfItem(
     val selectedColor = if (isSelected) {
         LegadoTheme.colorScheme.secondaryContainer
     } else {
-        LegadoTheme.colorScheme.surface
+        LegadoTheme.colorScheme.surface.copy(alpha = 0f)
     }
     if (isGrid) {
         Box(
@@ -144,7 +145,7 @@ fun BookshelfItem(
     } else {
         // 列表布局
         Column {
-            GlassCard(
+            NormalCard(
                 modifier = modifier
                     .fillMaxWidth()
                     .padding(all = 4.dp),

+ 4 - 4
app/src/main/java/io/legado/app/ui/widget/components/card/GlassCard.kt

@@ -38,9 +38,11 @@ private fun BaseCard(
     alpha: Float = 1f,
     content: @Composable ColumnScope.() -> Unit
 ) {
+    val resolvedContainerColor = (containerColor ?: LegadoTheme.colorScheme.secondaryContainer)
+        .let { it.copy(alpha = it.alpha * alpha) }
     if (ThemeResolver.isMiuixEngine(LegadoTheme.composeEngine)) {
         val colors = MiuixCardDefaults.defaultColors(
-            color = (containerColor ?: LegadoTheme.colorScheme.secondaryContainer.copy(alpha)),
+            color = resolvedContainerColor,
             contentColor = contentColor ?: LegadoTheme.colorScheme.onSurface
         )
         if (onClick != null) {
@@ -64,9 +66,7 @@ private fun BaseCard(
         }
     } else {
         val colors = CardDefaults.cardColors(
-            containerColor = (containerColor ?: LegadoTheme.colorScheme.secondaryContainer).copy(
-                alpha = alpha
-            ),
+            containerColor = resolvedContainerColor,
             contentColor = contentColor ?: LegadoTheme.colorScheme.onSecondaryContainer,
             disabledContainerColor = LegadoTheme.colorScheme.onSecondaryContainer.copy(alpha = alpha * 0.38f),
             disabledContentColor = LegadoTheme.colorScheme.onSecondaryContainer.copy(alpha = alpha * 0.38f)