RemoteBox

Functions summary

Unit

A version of RemoteBox with no content, often used as a spacer or a background placeholder.

Unit
@RemoteComposable
@Composable
RemoteBox(
    modifier: RemoteModifier,
    contentAlignment: RemoteAlignment,
    content: @Composable () -> Unit
)

A layout composable that positions its children relative to its own edges.

Functions

@RemoteComposable
@Composable
fun RemoteBox(modifier: RemoteModifier = RemoteModifier): Unit

A version of RemoteBox with no content, often used as a spacer or a background placeholder.

Parameters
modifier: RemoteModifier = RemoteModifier

The modifier to be applied to this box.

@RemoteComposable
@Composable
fun RemoteBox(
    modifier: RemoteModifier = RemoteModifier,
    contentAlignment: RemoteAlignment = RemoteAlignment.TopStart,
    content: @Composable () -> Unit
): Unit

A layout composable that positions its children relative to its own edges.

RemoteBox allows you to wrap multiple children and position them using contentAlignment. In Remote Compose, this layout is recorded as a Box command.

import androidx.compose.remote.creation.compose.layout.RemoteAlignment
import androidx.compose.remote.creation.compose.layout.RemoteBox
import androidx.compose.remote.creation.compose.layout.RemoteText
import androidx.compose.remote.creation.compose.modifier.RemoteModifier
import androidx.compose.remote.creation.compose.modifier.background
import androidx.compose.remote.creation.compose.modifier.size
import androidx.compose.remote.creation.compose.state.rc
import androidx.compose.remote.creation.compose.state.rdp
import androidx.compose.remote.creation.compose.state.rs
import androidx.compose.ui.graphics.Color

RemoteBox(
    modifier = RemoteModifier.size(200.rdp).background(Color.LightGray.rc),
    contentAlignment = RemoteAlignment.Center,
) {
    RemoteBox(modifier = RemoteModifier.size(100.rdp).background(Color.Blue.rc))
    RemoteText(text = "Centered".rs, color = Color.White.rc)
}
import androidx.compose.remote.creation.compose.layout.RemoteAlignment
import androidx.compose.remote.creation.compose.layout.RemoteBox
import androidx.compose.remote.creation.compose.modifier.RemoteModifier
import androidx.compose.remote.creation.compose.modifier.background
import androidx.compose.remote.creation.compose.modifier.size
import androidx.compose.remote.creation.compose.state.rc
import androidx.compose.remote.creation.compose.state.rdp
import androidx.compose.ui.graphics.Color

// Outer box centered
RemoteBox(
    modifier = RemoteModifier.size(200.rdp).background(Color.LightGray.rc),
    contentAlignment = RemoteAlignment.Center,
) {
    // Red box (150dp) also centered in outer box
    // It aligns its own children to TopStart
    RemoteBox(
        modifier = RemoteModifier.size(150.rdp).background(Color.Red.rc),
        contentAlignment = RemoteAlignment.TopStart,
    ) {
        RemoteBox(modifier = RemoteModifier.size(50.rdp).background(Color.Yellow.rc))

        // Nested depth to show stacking within aligned container
        RemoteBox(
            modifier = RemoteModifier.size(30.rdp).background(Color.Black.rc),
            contentAlignment = RemoteAlignment.Center,
        ) {
            RemoteBox(modifier = RemoteModifier.size(10.rdp).background(Color.White.rc))
        }
    }

    // Green box (100dp) centered in outer box (overlaps Red)
    // It aligns its own children to BottomEnd
    RemoteBox(
        modifier = RemoteModifier.size(100.rdp).background(Color.Green.rc),
        contentAlignment = RemoteAlignment.BottomEnd,
    ) {
        RemoteBox(modifier = RemoteModifier.size(40.rdp).background(Color.Magenta.rc))
    }

    // Blue box (50dp) centered in outer box (overlaps Green)
    // It aligns its own children to Center
    RemoteBox(
        modifier = RemoteModifier.size(50.rdp).background(Color.Blue.rc),
        contentAlignment = RemoteAlignment.Center,
    ) {
        RemoteBox(modifier = RemoteModifier.size(20.rdp).background(Color.Cyan.rc))
    }
}
Parameters
modifier: RemoteModifier = RemoteModifier

The modifier to be applied to this box.

contentAlignment: RemoteAlignment = RemoteAlignment.TopStart

The default alignment inside the Box.

content: @Composable () -> Unit

The content of the box.