Slide 12
Slide 12 text
© GO Inc.
12
実践 脱Modifier.composed
Modifier.composedをNode, Elementに分担する
private fun Modifier.animateScaleClickable(
enabled: Boolean,
hapticEnabled: Boolean = true,
): Modifier = this.then(
AnimateScaleClickableElement(enabled, hapticEnabled)
)
// Element:Modifierの変更判定をおこなう
private data class AnimateScaleClickableElement(
val enabled: Boolean,
val hapticEnabled: Boolean = true,
) : ModifierNodeElement()
// Node:UI装飾や動作を設定する
private class AnimateScaleClickableNode(
var enabled: Boolean,
var hapticEnabled: Boolean = true,
) : Modifier.Node()