inspectable

Compose Modifier

Common

Deprecated This API will create more invalidations of your modifier than necessary, so it's use is discouraged. Implementing the inspectableProperties method on ModifierNodeElement is the recommended zero-cost alternative to exposing properties on a Modifier to tooling.

inline fun Modifier.inspectable(
    noinline inspectorInfo: InspectorInfo.() -> Unit,
    factory: Modifier.() -> Modifier,
): Modifier

Use this to group a common set of modifiers and provide InspectorInfo for the resulting modifier.

Code Examples

InspectableModifierSample

@Composable
@Suppress("DEPRECATION")
fun InspectableModifierSample() {
    /** Sample with a single parameter */
    fun Modifier.simpleFrame(color: Color) =
        inspectable(
            inspectorInfo =
                debugInspectorInfo {
                    name = "simpleFrame"
                    value = color
                }
        ) {
            background(color, RoundedCornerShape(5.0.dp))
        }
    /** Sample with multiple parameters */
    fun Modifier.fancyFrame(size: Dp, color: Color) =
        inspectable(
            inspectorInfo =
                debugInspectorInfo {
                    name = "fancyFrame"
                    properties["size"] = size
                    properties["color"] = color
                }
        ) {
            background(color, RoundedCornerShape(size))
        }
}