staticCompositionLocalOf
public fun <T> staticCompositionLocalOf(defaultFactory: () -> T): ProvidableCompositionLocal<T>
Create a CompositionLocal
key that can be provided using CompositionLocalProvider
.
Unlike compositionLocalOf
, reads of a staticCompositionLocalOf
are not tracked by the
composer and changing the value provided in the CompositionLocalProvider
call will cause the
entirety of the content to be recomposed instead of just the places where in the composition the
local value is used. This lack of tracking, however, makes a staticCompositionLocalOf
more
efficient when the value provided is highly unlikely to or will never change. For example, the
android context, font loaders, or similar shared values, are unlikely to change for the
components in the content of a the CompositionLocalProvider
and should consider using a
staticCompositionLocalOf
. A color, or other theme like value, might change or even be animated
therefore a compositionLocalOf
should be used.
staticCompositionLocalOf
creates a ProvidableCompositionLocal
which can be used in a a call
to CompositionLocalProvider
. Similar to MutableList
vs. List
, if the key is made public as
CompositionLocal
instead of ProvidableCompositionLocal
, it can be read using
CompositionLocal.current
but not re-provided.
Parameters
defaultFactory | a value factory to supply a value when a value is not provided. This factory is called when no value is provided through a CompositionLocalProvider of the caller of the component using CompositionLocal.current . If no reasonable default can be provided then consider throwing an exception. |