Creates a [ProvidableModifierLocal] and specifies a default factory.
ModifierLocalChildParentCommunicationInterLayoutNodeSample
@Composable
fun ModifierLocalChildParentCommunicationInterLayoutNodeSample() {
class Sender(val onMessageReceived: (String) -> Unit) {
fun sendMessage(message: String) {
onMessageReceived(message)
}
}
// Define the type of data.
val ModifierLocalSender = modifierLocalOf<Sender> { error("No sender provided by parent.") }
Box(
Modifier
// Provide an instance associated with the sender type.
.modifierLocalProvider(ModifierLocalSender) {
Sender { println("Message Received: $it") }
}
) {
var sender by remember { mutableStateOf<Sender?>(null) }
Box(
Modifier
// Use the sender type to fetch an instance.
.modifierLocalConsumer { sender = ModifierLocalSender.current }
// Use this instance to send a message to the parent.
.clickable { sender?.sendMessage("Hello World") }
)
}
}
ModifierLocalChildParentCommunicationWithinLayoutNodeSample
@Composable
fun ModifierLocalChildParentCommunicationWithinLayoutNodeSample() {
class Sender(val onMessageReceived: (String) -> Unit) {
fun sendMessage(message: String) {
onMessageReceived(message)
}
}
// Define the type of data.
val ModifierLocalSender = modifierLocalOf<Sender> { error("No sender provided by parent.") }
Box(
Modifier
// Provide an instance associated with the sender type.
.modifierLocalProvider(ModifierLocalSender) {
Sender { println("Message Received: $it") }
}
.composed {
var sender by remember { mutableStateOf<Sender?>(null) }
Modifier
// Use the sender type to fetch an instance.
.modifierLocalConsumer { sender = ModifierLocalSender.current }
// Use this instance to send a message to the parent.
.clickable { sender?.sendMessage("Hello World") }
}
)
}
ModifierLocalParentChildCommunicationInterLayoutNodeSample
@Composable
fun ModifierLocalParentChildCommunicationInterLayoutNodeSample() {
// Define the type of data.
val ModifierLocalMessage = modifierLocalOf { "Unknown" }
Box(
// Provide an instance associated with the data type.
Modifier.modifierLocalProvider(ModifierLocalMessage) { "World" }
) {
var message by remember { mutableStateOf("") }
Box(
Modifier
// Use the data type to read the message.
.modifierLocalConsumer { message = ModifierLocalMessage.current }
.clickable { println("Hello $message") }
)
}
}
ModifierLocalParentChildCommunicationWithinLayoutNodeSample
@Composable
fun ModifierLocalParentChildCommunicationWithinLayoutNodeSample() {
// Define the type of data.
val ModifierLocalMessage = modifierLocalOf { "Unknown" }
Box(
Modifier
// Provide an instance associated with the data type.
.modifierLocalProvider(ModifierLocalMessage) { "World" }
.composed {
var message by remember { mutableStateOf("") }
Modifier
// Use the data type to read the message.
.modifierLocalConsumer { message = ModifierLocalMessage.current }
.clickable { println("Hello $message") }
}
)
}