Skip to content

Instantly share code, notes, and snippets.

View cp-radhika-s's full-sized avatar
🎯
Focusing

Radhika canopas cp-radhika-s

🎯
Focusing
View GitHub Profile
private object NoRippleTheme : RippleTheme {
@Composable
override fun defaultColor() = // Ripple color
@Composable
override fun rippleAlpha(): RippleAlpha = RippleAlpha(0.0f, 0.0f, 0.0f, 0.0f)
}
@Composable
fun NoRippleEffect2() {
Box(
modifier = Modifier
.height(height = 38.dp)
.background(
color = pink,
shape = RoundedCornerShape(percent = 12)
)
.clickable(
@Composable
fun NoRippleEffect1() {
Button(
onClick = {
//Clicked
},
interactionSource = remember { NoRippleInteractionSource() },
shape = RoundedCornerShape(12.dp),
contentPadding = PaddingValues(16.dp),
class NoRippleInteractionSource : MutableInteractionSource {
override val interactions: Flow<Interaction> = emptyFlow()
override suspend fun emit(interaction: Interaction) {}
override fun tryEmit(interaction: Interaction) = true
}
Box(
modifier = Modifier
.background(color = pink, RoundedCornerShape(cornerRadius))
.size(100.dp)
.clip(RoundedCornerShape(cornerRadius))
.clickable(
interactionSource = interactionSource,
indication = rememberRipple()
) {
//Clicked
val interactionSource = remember { MutableInteractionSource() }
val isPressed = interactionSource.collectIsPressedAsState()
val cornerRadius by animateDpAsState(targetValue = if (isPressed.value) 10.dp else 50.dp)
@Composable
fun ShakeEffect(){
Button(onClick = {
//Clicked
}, shape = RoundedCornerShape(12.dp), contentPadding = PaddingValues(16.dp),
modifier = Modifier.shakeClickEffect()) {
Text(text = "Click me")
}
}
fun Modifier.shakeClickEffect() = composed {
var buttonState by remember { mutableStateOf(ButtonState.Idle) }
val tx by animateFloatAsState(
targetValue = if (buttonState == ButtonState.Pressed) 0f else -50f,
animationSpec = repeatable(
iterations = 2,
animation = tween(durationMillis = 50, easing = LinearEasing),
repeatMode = RepeatMode.Reverse
)
@Composable
fun PressEffect() {
Button(onClick = {
//Clicked
}, shape = RoundedCornerShape(12.dp), contentPadding = PaddingValues(16.dp),
modifier = Modifier.pressClickEffect()) {
Text(text = "Click me")
}
}
enum class ButtonState { Pressed, Idle }
fun Modifier.pressClickEffect() = composed {
var buttonState by remember { mutableStateOf(ButtonState.Idle) }
val ty by animateFloatAsState(if (buttonState == ButtonState.Pressed) 0f else -20f)
this
.graphicsLayer {
translationY = ty
}
.clickable(