Known direct subclasses
ExtendedPaneScaffoldScope

Extended scope for pane scaffolds.

Known indirect subclasses
ExtendedPaneScaffoldPaneScope

Extended scope for the panes of pane scaffolds.

ThreePaneScaffoldPaneScope

Scope for the panes of ThreePaneScaffold.

ThreePaneScaffoldScope

Scope for the panes of ThreePaneScaffold.


The base scope of pane scaffolds, which provides scoped functions that supported by pane scaffolds.

Summary

Public functions

Modifier
@ExperimentalMaterial3AdaptiveApi
Modifier.paneExpansionDraggable(
    state: PaneExpansionState,
    minTouchTargetSize: Dp,
    interactionSource: MutableInteractionSource,
    semanticsProperties: SemanticsPropertyReceiver.() -> Unit
)

The modifier that should be applied on a drag handle composable so the drag handle can be dragged and operate on the provided PaneExpansionState properly.

Cmn
Modifier

This modifier specifies the preferred width for a pane, and the pane scaffold implementation will try its best to respect this width when the associated pane is rendered as a fixed pane, i.e., a pane that are not stretching to fill the remaining spaces.

Cmn

Public functions

@ExperimentalMaterial3AdaptiveApi
fun Modifier.paneExpansionDraggable(
    state: PaneExpansionState,
    minTouchTargetSize: Dp,
    interactionSource: MutableInteractionSource,
    semanticsProperties: SemanticsPropertyReceiver.() -> Unit
): Modifier

The modifier that should be applied on a drag handle composable so the drag handle can be dragged and operate on the provided PaneExpansionState properly. By default this modifier supports two types of user interactions:

  1. Dragging the handle horizontally within the pane scaffold.

  2. Accessibility actions provided via semanticsProperties.

Besides that, this modifier also sets up other necessary behaviors of a pane expansion drag handle, like excluding system gestures and ensuring minimum touch target size.

See usage samples at:

import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.VerticalDragHandle
import androidx.compose.material3.adaptive.layout.defaultDragHandleSemantics
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier

val interactionSource = remember { MutableInteractionSource() }
VerticalDragHandle(
    modifier =
        Modifier.paneExpansionDraggable(
            state,
            LocalMinimumInteractiveComponentSize.current,
            interactionSource,
            state.defaultDragHandleSemantics()
        ),
    interactionSource = interactionSource
)
Parameters
state: PaneExpansionState

the PaneExpansionState that controls the pane expansion of the associated pane scaffold

minTouchTargetSize: Dp

the minimum touch target size of the drag handle

interactionSource: MutableInteractionSource

the MutableInteractionSource to address user interactions

semanticsProperties: SemanticsPropertyReceiver.() -> Unit

the semantics setup working with accessibility services

fun Modifier.preferredWidth(width: Dp): Modifier

This modifier specifies the preferred width for a pane, and the pane scaffold implementation will try its best to respect this width when the associated pane is rendered as a fixed pane, i.e., a pane that are not stretching to fill the remaining spaces. In case the modifier is not set or set to Dp.Unspecified, the default preferred widths provided by PaneScaffoldDirective are supposed to be used.