Raid Xu
11/15/2024, 7:00 AMRaid Xu
11/15/2024, 7:01 AM@OptIn(ExperimentalLayoutApi::class)
@Composable
fun ShadowDemo() {
LazyColumn (
modifier = Modifier
.fillMaxSize()
.background(color = Color.Yellow),
verticalArrangement = Arrangement.spacedBy(16.dp),
contentPadding = PaddingValues(16.dp)
) {
items(100) { index ->
val density = LocalDensity.current
val elevation = index.dp
val corner = index.dp
val goodShape = RoundedCornerShape(corner)
val badShape = RoundedCornerShape(bottomStart = corner, bottomEnd = corner)
// val badShapeClockwise = badShape.clockwise()
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceAround
) {
val odd = index % 2 == 0
val leftShape = if (odd) goodShape else badShape
val rightShape = if (odd) badShape else goodShape
Box(
modifier = Modifier
.shadow(
elevation = elevation,
shape = leftShape,
clip = true
)
.clip(leftShape)
.background(color = Color.Blue)
.heightIn(min = 64.dp)
.padding(8.dp)
.weight(1f)
) {
Text("$index ${if (odd) "good" else "bad"}")
}
Spacer(modifier = Modifier.width(4.dp))
Box(
modifier = Modifier
.graphicsLayer {
shadowElevation = with(density) { elevation.toPx() }
shape = rightShape
clip = false
}
.clip(rightShape)
.background(color = Color.Blue)
.heightIn(min = 64.dp)
.padding(8.dp)
.weight(1f)
) {
Text("$index ${if (odd) "bad" else "good"}")
}
}
}
}
romainguy
11/15/2024, 7:24 AMAlex Vanyo
11/15/2024, 9:27 PMNader Jawad
11/15/2024, 10:14 PMRaid Xu
11/16/2024, 5:07 AMNader Jawad
11/16/2024, 4:39 PM