Ambient

sealed class Ambient<T>

Compose passes data through the composition tree explicitly through means of parameters to composable functions. This is often times the simplest and best way to have data flow through the tree.

Sometimes this model can be cumbersome or break down for data that is needed by lots of components, or when components need to pass data between one another but keep that implementation detail private. For these cases, Ambients can be used as an implicit way to have data flow through a composition.

Ambients by their nature are hierarchical. They make sense when the value of the ambient needs to be scoped to a particular sub-hierarchy of the composition.

One must create an Ambient instance, which can be referenced by the consumers statically. Ambient instances themselves hold no data, and can be thought of as a type-safe identifier for the data being passed down a tree. Ambient factory functions takes a single parameter, a factory to create a default value in cases where an ambient is used without a Provider. If this is a situation you would rather not handle, you can throw an error in this factory

Samples

androidx.compose.runtime.samples.ambientProviderandroidx.compose.runtime.samples.consumeAmbientandroidx.compose.runtime.samples.createAmbientandroidx.compose.runtime.samples.someScreenSample

Functions

equals
Link copied to clipboard
common
open operator fun equals(other: Any?): Boolean
hashCode
Link copied to clipboard
common
open fun hashCode(): Int
toString
Link copied to clipboard
common
open fun toString(): String

Properties

current
Link copied to clipboard
common
val current: T
Return the value provided by the nearest Providers component that invokes, directly or indirectly, the composable function that uses this property.

Inheritors

ProvidableAmbient
Link copied to clipboard