Nat Strangerweather
10/11/2020, 10:24 AM@Composable
fun CustomToggle(
color: Color, gradientColor: Color, selected: Boolean,
onSelected: () -> Unit
) {
val toggleAlign = animate(if (selected) 65.dp else 5.dp)
Box() {
Box(
modifier = Modifier
.height(40.dp)
.width(100.dp)
.clip(RoundedCornerShape(50))
.background(HorizontalGradient(
0.0f to color,
0.5f to gradientColor,
1.0f to color,
startX = 0.0f,
endX = with(DensityAmbient.current) { 100.dp.toPx() }
)
),
) {}
Surface(
modifier = Modifier.size(30.dp)
.align(Alignment.CenterStart)
.offset(toggleAlign)
.clip(RoundedCornerShape(50))
.toggleable(value = selected, onValueChange = { onSelected() }),
color = Color.White,
elevation = 7.dp
) {}
}
}
Se7eN
10/11/2020, 11:24 AM100.dp * scale
, 40.dp * scale
...(100 * scale).dp
Nat Strangerweather
10/11/2020, 11:28 AMgildor
10/11/2020, 2:20 PM