# RemoteButton

## Functions summary

|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable @https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteComposable https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)( onClick: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/action/RemoteAction, modifier: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/modifier/RemoteModifier, enabled: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteBoolean, shape: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/shapes/RemoteShape, colors: https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonColors, border: https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteBorderStroke?, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemotePaddingValues, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable @https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteComposable https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteRowScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Base level Wear Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` that offers a single slot to take any content. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable @https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteComposable https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)( onClick: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/action/RemoteAction, containerPainter: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/painter/RemotePainter, modifier: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/modifier/RemoteModifier, enabled: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteBoolean, disabledContainerPainter: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/painter/RemotePainter, shape: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/shapes/RemoteShape, colors: https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonColors, border: https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteBorderStroke?, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemotePaddingValues, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable @https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteComposable https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteRowScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Base level Wear Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` that offers parameters for container image backgrounds, with a single slot to take any content. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable @https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteComposable https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,kotlin.Function1,kotlin.Function0,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)( onClick: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/action/RemoteAction, modifier: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/modifier/RemoteModifier, secondaryLabel: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable @https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteComposable https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteRowScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, icon: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable @https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteComposable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, enabled: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteBoolean, containerPainter: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/painter/RemotePainter?, disabledContainerPainter: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/painter/RemotePainter?, shape: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/shapes/RemoteShape, colors: https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonColors, border: https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteBorderStroke?, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemotePaddingValues, label: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable @https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteComposable https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteRowScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Wear Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,kotlin.Function1,kotlin.Function0,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` that offers parameters for optional container image backgrounds, with three slots and a specific layout for an icon, label and secondaryLabel. |

## Functions

### RemoteButton

Artifact: [androidx.wear.compose.remote:remote-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose-remote) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/remote/material3/RemoteButton.kt+function:RemoteButton)

```
@Composable
@RemoteComposable
fun RemoteButton(
    onClick: RemoteAction,
    modifier: RemoteModifier = RemoteModifier,
    enabled: RemoteBoolean = true.rb,
    shape: RemoteShape = RemoteButtonDefaults.shape,
    colors: RemoteButtonColors = RemoteButtonDefaults.buttonColors(),
    border: RemoteBorderStroke? = null,
    contentPadding: RemotePaddingValues = RemoteButtonDefaults.ContentPadding,
    content: @Composable @RemoteComposable RemoteRowScope.() -> Unit
): Unit
```

Base level Wear Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` that offers a single slot to take any content. Used as the container for more opinionated `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` components that take specific content such as icons and labels.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` takes the `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonDefaults#buttonColors()` color scheme by default, with colored background, contrasting content color and no border. This is a high-emphasis button for the primary, most important or most common action on a screen.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` can be enabled or disabled. A disabled button will not respond to click events.

```kotlin
import androidx.compose.remote.creation.compose.action.valueChange
import androidx.compose.remote.creation.compose.state.MutableRemoteInt
import androidx.compose.remote.creation.compose.state.rs
import androidx.compose.runtime.remember
import androidx.wear.compose.remote.material3.RemoteButton
import androidx.wear.compose.remote.material3.RemoteText

val tapCount = remember { MutableRemoteInt(0) }
val countSuffix = " (".rs + tapCount.toRemoteString() + " taps)"

RemoteButton(valueChange(tapCount, tapCount + 1), modifier = modifier) {
    RemoteText("Tap me!".rs + countSuffix)
}
```

| Parameters |
|---|---|
| `onClick: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/action/RemoteAction` | Will be called when the user clicks the button |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/modifier/RemoteModifier = RemoteModifier` | Modifier to be applied to the button |
| `enabled: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteBoolean = true.rb` | Controls the enabled state of the button. When `false`, this button will not be clickable. It must be a constant value. |
| `shape: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/shapes/RemoteShape = RemoteButtonDefaults.shape` | Defines the button's shape. It is strongly recommended to use the default as this shape is a key characteristic of the Wear Material3 Theme |
| `colors: https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonColors = RemoteButtonDefaults.buttonColors()` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonColors` that will be used to resolve the background and content color for this button in different states. See `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonDefaults#buttonColors()`. |
| `border: https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteBorderStroke? = null` | Optional `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteBorderStroke` that will be used to resolve the border for this button in different states. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemotePaddingValues = RemoteButtonDefaults.ContentPadding` | The spacing values to apply internally between the container and the content |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable @https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteComposable https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteRowScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Slot for composable body content displayed on the `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` |

### RemoteButton

Artifact: [androidx.wear.compose.remote:remote-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose-remote) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/remote/material3/RemoteButton.kt+function:RemoteButton)

```
@Composable
@RemoteComposable
fun RemoteButton(
    onClick: RemoteAction,
    containerPainter: RemotePainter,
    modifier: RemoteModifier = RemoteModifier,
    enabled: RemoteBoolean = true.rb,
    disabledContainerPainter: RemotePainter = RemoteButtonDefaults.disabledContainerPainter(containerPainter),
    shape: RemoteShape = RemoteButtonDefaults.shape,
    colors: RemoteButtonColors = RemoteButtonDefaults.buttonWithNullableContainerPainterColors(containerPainter),
    border: RemoteBorderStroke? = null,
    contentPadding: RemotePaddingValues = RemoteButtonDefaults.ContentPadding,
    content: @Composable @RemoteComposable RemoteRowScope.() -> Unit
): Unit
```

Base level Wear Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` that offers parameters for container image backgrounds, with a single slot to take any content.

An Image background is a means to reinforce the meaning of information in a Button. Buttons should have a content color that contrasts with the background image and scrim.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` can be enabled or disabled. A disabled button will not respond to click events.

| Parameters |
|---|---|
| `onClick: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/action/RemoteAction` | Will be called when the user clicks the button |
| `containerPainter: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/painter/RemotePainter` | The background image of this `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` when enabled |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/modifier/RemoteModifier = RemoteModifier` | Modifier to be applied to the button |
| `enabled: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteBoolean = true.rb` | Controls the enabled state of the button. When `false`, this button will not be clickable. It must be a constant value. |
| `disabledContainerPainter: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/painter/RemotePainter = RemoteButtonDefaults.disabledContainerPainter(containerPainter)` | The background image of this `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` when disabled |
| `shape: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/shapes/RemoteShape = RemoteButtonDefaults.shape` | Defines the button's shape. It is strongly recommended to use the default as this shape is a key characteristic of the Wear Material3 Theme |
| `colors: https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonColors = RemoteButtonDefaults.buttonWithNullableContainerPainterColors(containerPainter)` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonColors` that will be used to resolve the background and content color for this button in different states. See `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonDefaults#buttonColors()`. |
| `border: https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteBorderStroke? = null` | Optional `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteBorderStroke` that will be used to resolve the border for this button in different states. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemotePaddingValues = RemoteButtonDefaults.ContentPadding` | The spacing values to apply internally between the container and the content |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable @https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteComposable https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteRowScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Slot for composable body content displayed on the `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.modifier.RemoteModifier,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` |

### RemoteButton

Artifact: [androidx.wear.compose.remote:remote-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose-remote) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/remote/material3/RemoteButton.kt+function:RemoteButton)

```
@Composable
@RemoteComposable
fun RemoteButton(
    onClick: RemoteAction,
    modifier: RemoteModifier = RemoteModifier,
    secondaryLabel: (@Composable @RemoteComposable RemoteRowScope.() -> Unit)? = null,
    icon: (@Composable @RemoteComposable () -> Unit)? = null,
    enabled: RemoteBoolean = true.rb,
    containerPainter: RemotePainter? = null,
    disabledContainerPainter: RemotePainter? = null,
    shape: RemoteShape = RemoteButtonDefaults.shape,
    colors: RemoteButtonColors = RemoteButtonDefaults.buttonWithNullableContainerPainterColors(containerPainter),
    border: RemoteBorderStroke? = null,
    contentPadding: RemotePaddingValues = RemoteButtonDefaults.ContentPadding,
    label: @Composable @RemoteComposable RemoteRowScope.() -> Unit
): Unit
```

Wear Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,kotlin.Function1,kotlin.Function0,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` that offers parameters for optional container image backgrounds, with three slots and a specific layout for an icon, label and secondaryLabel. The icon and secondaryLabel are optional. The items are laid out with the icon, if provided, at the start of a row, with a column next containing the two label slots.

An image background is a means to reinforce the meaning of information in a Button. Buttons should have a content color that contrasts with the background image and scrim.

This `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,kotlin.Function1,kotlin.Function0,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` takes `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/package-summary#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,kotlin.Function1,kotlin.Function0,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` for the container image background to be drawn when the button is enabled and `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/package-summary#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,kotlin.Function1,kotlin.Function0,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` for the image background when the button is disabled (the `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonColors` containerColor and disabledContainerColor properties are ignored). It is recommended to use `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonDefaults#containerPainter(androidx.compose.remote.creation.compose.state.RemoteImageBitmap,androidx.compose.remote.creation.compose.shaders.RemoteBrush,androidx.compose.remote.creation.compose.state.RemoteFloat,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.compose.ui.layout.ContentScale)` to create the painters so that a scrim is drawn on top of the container image, ensuring that any content above the background is legible. If painters are not provided, a tonal color shape would be used as the button background.

The `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,kotlin.Function1,kotlin.Function0,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` is stadium-shaped by default and its standard height is designed to take 2 lines of text - either a two-line label or both a single line label and a secondary label. With localisation and/or large font sizes, the `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,kotlin.Function1,kotlin.Function0,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` height adjusts to accommodate the contents. The label and secondary label should be consistently aligned.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,kotlin.Function1,kotlin.Function0,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` can be enabled or disabled. A disabled button will not respond to click events.

Example of a `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,kotlin.Function1,kotlin.Function0,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` with an image background, an icon and a secondary label:

| Parameters |
|---|---|
| `onClick: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/action/RemoteAction` | Will be called when the user clicks the button |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/modifier/RemoteModifier = RemoteModifier` | Modifier to be applied to the button |
| `secondaryLabel: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable @https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteComposable https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteRowScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | A slot for providing the button's secondary label. The contents are expected to be text which is "start" aligned if there is an icon present and "start" or "center" aligned if not. label and secondaryLabel contents should be consistently aligned. |
| `icon: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable @https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteComposable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | A slot for providing the button's icon. The contents are expected to be a horizontally and vertically aligned icon of size `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonDefaults#IconSize()` or `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonDefaults#LargeIconSize()`. |
| `enabled: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/state/RemoteBoolean = true.rb` | Controls the enabled state of the button. When `false`, this button will not be clickable |
| `containerPainter: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/painter/RemotePainter? = null` | The `https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/painter/RemotePainter` to use to draw the container image of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,kotlin.Function1,kotlin.Function0,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)`, such as returned by `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonDefaults#containerPainter(androidx.compose.remote.creation.compose.state.RemoteImageBitmap,androidx.compose.remote.creation.compose.shaders.RemoteBrush,androidx.compose.remote.creation.compose.state.RemoteFloat,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.compose.ui.layout.ContentScale)`. |
| `disabledContainerPainter: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/painter/RemotePainter? = null` | `https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/painter/RemotePainter` to use to draw the container of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButton.composable#RemoteButton(androidx.compose.remote.creation.compose.action.RemoteAction,androidx.compose.remote.creation.compose.modifier.RemoteModifier,kotlin.Function1,kotlin.Function0,androidx.compose.remote.creation.compose.state.RemoteBoolean,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.painter.RemotePainter,androidx.compose.remote.creation.compose.shapes.RemoteShape,androidx.wear.compose.remote.material3.RemoteButtonColors,androidx.wear.compose.remote.material3.RemoteBorderStroke,androidx.compose.remote.creation.compose.layout.RemotePaddingValues,kotlin.Function1)` when not enabled, such as returned by `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonDefaults#disabledContainerPainter(androidx.compose.remote.creation.compose.painter.RemotePainter)`. |
| `shape: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/shapes/RemoteShape = RemoteButtonDefaults.shape` | Defines the button's shape. It is strongly recommended to use the default as this shape is a key characteristic of the Wear Material3 Theme |
| `colors: https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonColors = RemoteButtonDefaults.buttonWithNullableContainerPainterColors(containerPainter)` | `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonColors` that will be used to resolve the background and content color for this button in different states (the containerColor and disabledContainerColor are overridden by containerPainter and disabledContainerPainter respectively). See `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteButtonDefaults#buttonWithContainerPainterColors()`. |
| `border: https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteBorderStroke? = null` | Optional `https://developer.android.com/reference/kotlin/androidx/wear/compose/remote/material3/RemoteBorderStroke` that will be used to resolve the border for this button in different states. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemotePaddingValues = RemoteButtonDefaults.ContentPadding` | The spacing values to apply internally between the container and the content |
| `label: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable @https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteComposable https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/compose/layout/RemoteRowScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A slot for providing the button's main label. The contents are expected to be text which is "start" aligned if there is an icon present and "start" or "center" aligned if not. |