Optimize CrystalCard, reduce compose allocation

This commit is contained in:
tarsin committed 2023-04-11 14:47:11 +08:00
1 parent f9ed777c7f
commit d72a44b9f2
1 file changed
+10 -2
@@ -5,8 +5,16 @@ import androidx.compose.foundation.layout.ColumnScope
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.OutlinedCard
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
@Composable
private fun crystalCardBorder(): BorderStroke {
val originBorder = CardDefaults.outlinedCardBorder()
return remember { originBorder.copy(brush = SolidColor(Color.Transparent)) }
}
@Composable
fun CrystalCard(
@@ -16,7 +24,7 @@ fun CrystalCard(
) = OutlinedCard(
onClick = onClick,
modifier = modifier,
border = BorderStroke(CardDefaults.outlinedCardBorder().width, Color.Transparent),
border = crystalCardBorder(),
content = content,
)
@@ -26,6 +34,6 @@ fun CrystalCard(
content: @Composable ColumnScope.() -> Unit,
) = OutlinedCard(
modifier = modifier,
border = BorderStroke(CardDefaults.outlinedCardBorder().width, Color.Transparent),
border = crystalCardBorder(),
content = content,
)