Compose 修饰符列表

操作

范围:Any
<T : Any?> Modifier.anchoredDraggable(
    state: AnchoredDraggableState<T>,
    orientation: Orientation,
    enabled: Boolean,
    interactionSource: MutableInteractionSource?,
    overscrollEffect: OverscrollEffect?,
    flingBehavior: FlingBehavior?
)

在预定义值集之间启用拖动手势。

范围:Any
<T : Any?> Modifier. anchoredDraggable(
    state: AnchoredDraggableState<T>,
    orientation: Orientation,
    enabled: Boolean,
    interactionSource: MutableInteractionSource?,
    overscrollEffect: OverscrollEffect?,
    startDragImmediately: Boolean,
    flingBehavior: FlingBehavior?
)

此函数已弃用。 startDragImmediately 已移除,无替代方案。

范围:Any
<T : Any?> Modifier.anchoredDraggable(
    state: AnchoredDraggableState<T>,
    reverseDirection: Boolean,
    orientation: Orientation,
    enabled: Boolean,
    interactionSource: MutableInteractionSource?,
    overscrollEffect: OverscrollEffect?,
    flingBehavior: FlingBehavior?
)

在预定义值集之间启用拖动手势。

范围:Any
<T : Any?> Modifier. anchoredDraggable(
    state: AnchoredDraggableState<T>,
    reverseDirection: Boolean,
    orientation: Orientation,
    enabled: Boolean,
    interactionSource: MutableInteractionSource?,
    overscrollEffect: OverscrollEffect?,
    startDragImmediately: Boolean,
    flingBehavior: FlingBehavior?
)

此函数已弃用。 startDragImmediately 已移除,无替代方案。

范围:Any
Modifier.clickable(
    enabled: Boolean,
    onClickLabel: String?,
    role: Role?,
    onClick: () -> Unit
)

配置组件以通过输入或无障碍“点击”事件接收点击。

范围:Any
Modifier.clickable(
    interactionSource: MutableInteractionSource?,
    indication: Indication?,
    enabled: Boolean,
    onClickLabel: String?,
    role: Role?,
    onClick: () -> Unit
)

配置组件以通过输入或无障碍“点击”事件接收点击。

范围:Any
Modifier.combinedClickable(
    enabled: Boolean,
    onClickLabel: String?,
    role: Role?,
    onLongClickLabel: String?,
    onLongClick: (() -> Unit)?,
    onDoubleClick: (() -> Unit)?,
    hapticFeedbackEnabled: Boolean,
    onClick: () -> Unit
)

配置组件以通过输入或无障碍“点击”事件接收单击、双击和长按。

范围:Any
Modifier.combinedClickable(
    interactionSource: MutableInteractionSource?,
    indication: Indication?,
    enabled: Boolean,
    onClickLabel: String?,
    role: Role?,
    onLongClickLabel: String?,
    onLongClick: (() -> Unit)?,
    onDoubleClick: (() -> Unit)?,
    hapticFeedbackEnabled: Boolean,
    onClick: () -> Unit
)

配置组件以通过输入或无障碍“点击”事件接收单击、双击和长按。

范围:Any
Modifier.draggable2D(
    state: Draggable2DState,
    enabled: Boolean,
    interactionSource: MutableInteractionSource?,
    startDragImmediately: Boolean,
    onDragStarted: (startedPosition: Offset) -> Unit,
    onDragStopped: (velocity: Velocity) -> Unit,
    reverseDirection: Boolean
)

配置 UI 元素在两个方向上的触摸拖动。

范围:Any
Modifier.draggable(
    state: DraggableState,
    orientation: Orientation,
    enabled: Boolean,
    interactionSource: MutableInteractionSource?,
    startDragImmediately: Boolean,
    onDragStarted: suspend CoroutineScope.(startedPosition: Offset) -> Unit,
    onDragStopped: suspend CoroutineScope.(velocity: Float) -> Unit,
    reverseDirection: Boolean
)

配置 UI 元素在单个 Orientation 中的触摸拖动。

范围:Any

使用此修饰符将 Tabs 或 RadioButtons 等 selectable 项列表组合在一起,以实现无障碍功能。

范围:Any
Modifier.selectable(
    selected: Boolean,
    enabled: Boolean,
    role: Role?,
    onClick: () -> Unit
)

将组件配置为可选择,通常作为互斥组的一部分,在任何时候只能选择一个项目。

范围:Any
Modifier.selectable(
    selected: Boolean,
    interactionSource: MutableInteractionSource?,
    indication: Indication?,
    enabled: Boolean,
    role: Role?,
    onClick: () -> Unit
)

将组件配置为可选择,通常作为互斥组的一部分,在任何时候只能选择一个项目。

范围:Any
@ExperimentalMaterialApi
<T : Any?> Modifier. swipeable(
    state: SwipeableState<T>,
    anchors: Map<Float, T>,
    orientation: Orientation,
    enabled: Boolean,
    reverseDirection: Boolean,
    interactionSource: MutableInteractionSource?,
    thresholds: (from, to) -> ThresholdConfig,
    resistance: ResistanceConfig?,
    velocityThreshold: Dp
)

此函数已弃用。 Material 的 Swipeable 已由 Foundation 的 AnchoredDraggable API 替代。

范围:Any
@ExperimentalWearMaterialApi
<T : Any?> Modifier.swipeable(
    state: SwipeableState<T>,
    anchors: Map<Float, T>,
    orientation: Orientation,
    enabled: Boolean,
    reverseDirection: Boolean,
    interactionSource: MutableInteractionSource?,
    thresholds: (from, to) -> ThresholdConfig,
    resistance: ResistanceConfig?,
    velocityThreshold: Dp
)

在预定义状态集之间启用滑动手势。

范围:Any
Modifier.toggleable(
    value: Boolean,
    enabled: Boolean,
    role: Role?,
    onValueChange: (Boolean) -> Unit
)

配置组件,使其可通过输入和无障碍事件进行切换

范围:Any
Modifier.toggleable(
    value: Boolean,
    interactionSource: MutableInteractionSource?,
    indication: Indication?,
    enabled: Boolean,
    role: Role?,
    onValueChange: (Boolean) -> Unit
)

配置组件,使其可通过输入和无障碍事件进行切换。

范围:Any
Modifier.triStateToggleable(
    state: ToggleableState,
    enabled: Boolean,
    role: Role?,
    onClick: () -> Unit
)

配置组件,使其可通过输入和无障碍事件进行切换,并具有三种状态:打开、关闭和不确定。

范围:Any
Modifier.triStateToggleable(
    state: ToggleableState,
    interactionSource: MutableInteractionSource?,
    indication: Indication?,
    enabled: Boolean,
    role: Role?,
    onClick: () -> Unit
)

配置组件,使其可通过输入和无障碍事件进行切换,并具有三种状态:打开、关闭和不确定。

@ExperimentalMaterial3AdaptiveApi
Modifier.paneExpansionDraggable(
    state: PaneExpansionState,
    minTouchTargetSize: Dp,
    interactionSource: MutableInteractionSource
)

应用于可拖动手柄可组合项的修饰符,以便拖动句柄可以正确拖动并操作所提供的 PaneExpansionState

对齐

范围: RowScope

Row 中垂直对齐元素。

范围: RowScope
Modifier.alignBy(alignmentLineBlock: (Measured) -> Int)

垂直放置元素,使由 alignmentLineBlock 确定的内容对齐线与同样配置为 alignBy 的同级元素对齐。

范围: RowScope

垂直放置元素,使其 alignmentLine 与同样配置为 alignBy 的同级元素对齐。

范围: RowScope

垂直放置元素,使其第一条基线与同样配置为 alignByBaselinealignBy 的同级元素对齐。

范围: ColumnScope

Column 中水平对齐元素。

范围: ColumnScope
Modifier.alignBy(alignmentLineBlock: (Measured) -> Int)

水平放置元素,使由 alignmentLineBlock 确定的内容对齐线与同样配置为 alignBy 的同级元素对齐。

范围: ColumnScope

水平放置元素,使其 alignmentLine 与同样配置为 alignBy 的同级元素对齐。

范围: BoxScope
Modifier.align(alignment: Alignment)

将内容元素拉到 Box 内的特定 Alignment

动画

范围:Any
@ExperimentalSharedTransitionApi
Modifier.animateBounds(
    lookaheadScope: LookaheadScope,
    modifier: Modifier,
    boundsTransform: BoundsTransform,
    animateMotionFrameOfReference: Boolean
)

用于动画处理 Modifier 内发生的布局更改(位置和/或大小)的 LookaheadScope

范围:Any
@ExperimentalMaterial3ExpressiveApi
Modifier.animateFloatingActionButton(
    visible: Boolean,
    alignment: Alignment,
    targetScale: Float,
    scaleAnimationSpec: AnimationSpec<Float>?,
    alphaAnimationSpec: AnimationSpec<Float>?
)

将此修饰符应用于 FloatingActionButton,以动画方式显示或隐藏它,通常根据应用主内容滚动情况。

开放
Modifier.animateEnterExit(
    enter: EnterTransition,
    exit: ExitTransition,
    label: String
)

animateEnterExit 修饰符可用于 AnimatedVisibility 的任何直接或间接子项,以创建与 AnimatedVisibility 中指定的不同的进入/退出动画。

范围: LazyItemScope
开放
Modifier.animateItem(
    fadeInSpec: FiniteAnimationSpec<Float>?,
    placementSpec: FiniteAnimationSpec<IntOffset>?,
    fadeOutSpec: FiniteAnimationSpec<Float>?
)

此修饰符可动画显示项目的出现(淡入)、消失(淡出)和位置变化(例如项目重新排序)。

Modifier.animateItem(
    fadeInSpec: FiniteAnimationSpec<Float>?,
    placementSpec: FiniteAnimationSpec<IntOffset>?,
    fadeOutSpec: FiniteAnimationSpec<Float>?
)

此修饰符可动画显示项目的出现(淡入)、消失(淡出)和位置变化(例如项目重新排序)。

Modifier.animateItem(
    fadeInSpec: FiniteAnimationSpec<Float>?,
    placementSpec: FiniteAnimationSpec<IntOffset>?,
    fadeOutSpec: FiniteAnimationSpec<Float>?
)

此修饰符可动画显示项目的出现(淡入)、消失(淡出)和位置变化(例如项目重新排序)。

边框

范围:Any
Modifier.border(border: BorderStroke, shape: Shape)

修改元素以添加边框,其外观由 bordershape 指定,并剪切它。

范围:Any
Modifier.border(width: Dp, brush: Brush, shape: Shape)

修改元素以添加边框,其外观由 widthbrushshape 指定,并剪切它。

范围:Any
Modifier.border(width: Dp, color: Color, shape: Shape)

修改元素以添加边框,其外观由 widthcolorshape 指定,并剪切它。

绘制

范围:Any
Modifier.alpha(alpha: Float)

以修改后的 Alpha 值(可能小于 1)绘制内容。

范围:Any
Modifier.background(color: Color, shape: Shape)

使用纯色 color 在内容后面绘制 shape

范围:Any
Modifier.background(
    brush: Brush,
    shape: Shape,
    alpha: @FloatRange(from = 0.0, to = 1.0) Float
)

使用 brush 在内容后面绘制 shape

范围:Any
Modifier.clip(shape: Shape)

将内容剪切到 shape

范围:Any

将内容剪切到此修饰符定义的图层边界。

范围:Any
Modifier.drawBehind(onDraw: DrawScope.() -> Unit)

在修改后的内容后面绘制到 Canvas 中。

范围:Any
Modifier.drawWithCache(onBuildDrawCache: CacheDrawScope.() -> DrawResult)

绘制到 DrawScope 中,只要绘图区域的大小相同或读取的任何状态对象未更改,内容就会在绘制调用之间持久存在。

范围:Any

创建一个 DrawModifier,允许开发者在布局内容之前或之后进行绘制。

范围:Any
Modifier.indication(
    interactionSource: InteractionSource,
    indication: Indication?
)

当发生交互时,为此组件绘制视觉效果。

范围:Any
Modifier.paint(
    painter: Painter,
    sizeToIntrinsics: Boolean,
    alignment: Alignment,
    contentScale: ContentScale,
    alpha: Float,
    colorFilter: ColorFilter?
)

使用 painter 绘制内容。

范围:Any
Modifier.shadow(
    elevation: Dp,
    shape: Shape,
    clip: Boolean,
    ambientColor: Color,
    spotColor: Color
)

创建一个绘制阴影的 graphicsLayer

范围:Any

添加内边距以适应 安全绘图 边衬区。

范围:Any
Modifier.zIndex(zIndex: Float)

创建一个修饰符,用于控制同一布局父级的子项的绘制顺序。

焦点

范围:Any
Modifier.onFocusChanged(onFocusChanged: (FocusState) -> Unit)

将此修饰符添加到组件以观察焦点状态事件。

范围:Any
Modifier.onFocusEvent(onFocusEvent: (FocusState) -> Unit)

将此修饰符添加到组件以观察焦点状态事件。

范围:Any

此函数已弃用。 已由 focusTarget 替代

范围:Any

将此修饰符添加到组件以使其可聚焦。

范围:Any
Modifier. focusOrder(focusOrderReceiver: FocusOrder.() -> Unit)

此函数已弃用。 请改用 focusProperties()

范围:Any
Modifier. focusOrder(focusRequester: FocusRequester)

此函数已弃用。 请改用 focusRequester()

范围:Any
Modifier. focusOrder(
    focusRequester: FocusRequester,
    focusOrderReceiver: FocusOrder.() -> Unit
)

此函数已弃用。 请改用 focusProperties() 和 focusRequester()

范围:Any

此修饰符允许您指定可供修饰符链中更深层或子布局节点上的 focusTarget 访问的属性。

范围:Any

将此修饰符添加到组件以请求焦点更改。

范围:Any

此修饰符可用于将焦点保存并恢复到焦点组。

范围:Any

此函数已弃用。 请改用 focusRestorer(FocusRequester)

范围:Any

创建一个焦点组或将此组件标记为焦点组。

范围:Any
Modifier.focusable(
    enabled: Boolean,
    interactionSource: MutableInteractionSource?
)

配置组件以通过焦点系统或无障碍“焦点”事件可聚焦。

范围:Any
Modifier.onFocusedBoundsChanged(
    onPositioned: (LayoutCoordinates?) -> Unit
)

每当当前聚焦区域的边界发生变化时,都会调用 onPositioned

图形

范围:Any

一个使内容绘制到绘制图层中的 Modifier.Node

范围:Any
Modifier.graphicsLayer(
    scaleX: Float,
    scaleY: Float,
    alpha: Float,
    translationX: Float,
    translationY: Float,
    shadowElevation: Float,
    rotationX: Float,
    rotationY: Float,
    rotationZ: Float,
    cameraDistance: Float,
    transformOrigin: TransformOrigin,
    shape: Shape,
    clip: Boolean,
    renderEffect: RenderEffect?,
    ambientShadowColor: Color,
    spotShadowColor: Color,
    compositingStrategy: CompositingStrategy
)

一个使内容绘制到绘制图层中的 Modifier.Element

范围:Any

一个添加绘制图层的 Modifier.Element,以便工具可以在绘制的图像中识别元素。

键盘

范围:Any
Modifier.onKeyEvent(onKeyEvent: (KeyEvent) -> Boolean)

将此 modifier 添加到组件的 modifier 参数中,将允许它在组件(或其子项之一)获得焦点时截取硬件按键事件。

范围:Any
Modifier.onPreviewKeyEvent(onPreviewKeyEvent: (KeyEvent) -> Boolean)

将此 modifier 添加到组件的 modifier 参数中,将允许它在组件(或其子项之一)获得焦点时截取硬件按键事件。

布局

范围:Any
Modifier.layoutId(layoutId: String, tag: String?)

androidx.compose.ui.layout.layoutId 的替代方案,支持使用 tag

范围:Any
Modifier.layoutId(layoutId: Any)

使用 layoutId 标记元素,以在其父级中识别该元素。

范围:Any

创建一个 LayoutModifier,允许更改被封装元素的测量和布局方式。

范围:Any
Modifier.onGloballyPositioned(
    onGloballyPositioned: (LayoutCoordinates) -> Unit
)

当内容的全局位置可能已更改时,使用元素的 onGloballyPositioned 调用 LayoutCoordinates

内边距

范围:Any
Modifier.paddingFrom(alignmentLine: AlignmentLine, before: Dp, after: Dp)

一个 Modifier,可以添加内边距以根据其边界到 对齐线 的指定距离来定位内容。

范围:Any
Modifier.paddingFrom(
    alignmentLine: AlignmentLine,
    before: TextUnit,
    after: TextUnit
)

一个 Modifier,可以添加内边距以根据其边界到 对齐线 的指定距离来定位内容。

范围:Any
Modifier.paddingFromBaseline(top: Dp, bottom: Dp)

一个 Modifier,用于在布局中定位内容,使从布局顶部到 内容中第一行文本的基线 的距离为 top,并且从 内容中最后一行文本的基线 到布局底部的距离为 bottom

范围:Any

一个 Modifier,用于在布局中定位内容,使从布局顶部到 内容中第一行文本的基线 的距离为 top,并且从 内容中最后一行文本的基线 到布局底部的距离为 bottom

范围:Any
Modifier.absolutePadding(left: Dp, top: Dp, right: Dp, bottom: Dp)

在内容的每个边缘应用额外的 Dp 空间:lefttoprightbottom

范围:Any

沿内容的每个边缘(左、上、右和下)应用 all dp 的额外空间。

范围:Any
Modifier.padding(paddingValues: PaddingValues)

PaddingValues 应用于组件,作为内容左、上、右、下每个边缘的额外空间。

范围:Any
Modifier.padding(horizontal: Dp, vertical: Dp)

沿内容的左边缘和右边缘应用 horizontal dp 空间,沿顶部和底部边缘应用 vertical dp 空间。

范围:Any
Modifier.padding(start: Dp, top: Dp, end: Dp, bottom: Dp)

在内容的每个边缘应用额外的 Dp 空间:starttopendbottom

范围:Any

添加内边距以适应 标题栏 边衬区。

范围:Any

添加内边距以适应 显示屏切口

范围:Any

添加内边距以适应 IME 边衬区。

范围:Any

添加内边距以适应 强制系统手势 边衬区。

范围:Any

添加内边距以适应 导航栏 边衬区。

范围:Any

添加内边距以适应 安全内容 边衬区。

范围:Any

添加内边距以适应 安全手势 边衬区。

范围:Any

添加内边距以适应 状态栏 边衬区。

范围:Any

添加内边距以适应 系统栏 边衬区。

范围:Any

添加内边距以适应 系统手势 边衬区。

范围:Any

添加内边距以适应waterfall窗口边衬区。

范围:Any

添加内边距,使内容不进入insets空间。

指针

范围:Any
Modifier.pointerHoverIcon(
    icon: PointerIcon,
    overrideDescendants: Boolean
)

当光标悬停在元素上时,此修饰符允许开发者定义要显示的指针图标。

范围:Any
Modifier.pointerInteropFilter(
    requestDisallowInterceptTouchEvent: RequestDisallowInterceptTouchEvent?,
    onTouchEvent: (MotionEvent) -> Boolean
)

一个特殊的 PointerInputModifier,提供对最初分派给 Compose 的底层MotionEvent的访问。

范围:Any
Modifier. pointerInput(block: suspend PointerInputScope.() -> Unit)

此函数已废弃。Modifier.pointerInput 必须提供一个或多个“key”参数,这些参数定义修饰符的标识,并确定何时应取消其先前的输入处理协程并为新 key 启动新效果。

范围:Any

创建一个修饰符,用于处理修改后元素区域内的指针输入。

范围:Any
Modifier.pointerInput(vararg keys: Any?, block: PointerInputEventHandler)

创建一个修饰符,用于处理修改后元素区域内的指针输入。

范围:Any
Modifier.pointerInput(
    key1: Any?,
    key2: Any?,
    block: PointerInputEventHandler
)

创建一个修饰符,用于处理修改后元素区域内的指针输入。

位置

范围:Any

将内容按offset像素偏移。

范围:Any

将内容按 (x dp, y dp) 偏移。

范围:Any
Modifier.offset(offset: Density.() -> IntOffset)

将内容按offset像素偏移。

范围:Any
Modifier.offset(x: Dp, y: Dp)

将内容按 (x dp, y dp) 偏移。

范围: TabRowDefaults
Modifier.tabIndicatorOffset(currentTabPosition: TabPosition)

Modifier占据TabRow内所有可用宽度,然后根据currentTabPosition动画显示其所应用指示器的偏移量。

范围: TabRowDefaults
Modifier.tabIndicatorOffset(currentTabPosition: TabPosition)

Modifier占据TabRow内所有可用宽度,然后根据currentTabPosition动画显示其所应用指示器的偏移量。

语义

范围:Any

包含不确定进度指示器所需的semantics,表示正在进行的操作。

范围:Any
Modifier.progressSemantics(
    value: Float,
    valueRange: ClosedFloatingPointRange<Float>,
    steps: @IntRange(from = 0) Int
)

包含确定性进度指示器或滑块进度部分所需的semantics,表示valueRange内的进度。

范围:Any
Modifier.rangeSemantics(
    value: Float,
    enabled: Boolean,
    onValueChange: (Float) -> Unit,
    valueRange: ClosedFloatingPointRange<Float>,
    steps: Int
)

用于添加表示步进器/滑块进度的语义的修饰符。

范围:Any

清除所有后代节点的语义并设置新语义。

范围:Any
Modifier.semantics(mergeDescendants: Boolean, properties: SemanticsPropertyReceiver.() -> Unit)

向布局节点添加语义键值对,用于测试、辅助功能等。

滚动

范围:Any

剪辑可滚动容器在主轴上的边界,同时在副轴上为背景效果(如阴影)留出空间。

范围:Any
Modifier.nestedScroll(
    connection: NestedScrollConnection,
    dispatcher: NestedScrollDispatcher?
)

修改元素以使其参与嵌套滚动层次结构。

范围:Any
Modifier.overscroll(overscrollEffect: OverscrollEffect?)

从提供的overscrollEffect渲染过度滚动效果。

范围:Any
Modifier.onPreRotaryScrollEvent(
    onPreRotaryScrollEvent: (RotaryScrollEvent) -> Boolean
)

将此modifier添加到组件的modifier参数中,如果它(或其子项之一)获得焦点,将允许它拦截RotaryScrollEvent

范围:Any
Modifier.onRotaryScrollEvent(
    onRotaryScrollEvent: (RotaryScrollEvent) -> Boolean
)

将此modifier添加到组件的modifier参数中,如果它(或其子项之一)获得焦点,将允许它拦截RotaryScrollEvent

范围:Any
Modifier.rotaryScrollable(
    behavior: RotaryScrollableBehavior,
    focusRequester: FocusRequester,
    reverseDirection: Boolean
)

一个修饰符,用于将旋转事件与 Column、LazyList 等可滚动容器连接起来。

范围:Any
Modifier.scrollAway(
    scrollInfoProvider: ScrollInfoProvider,
    screenStage: () -> ScreenStage
)

根据滚动列表提供的滚动状态,垂直滚动项目使其进入/离开视图。

范围:Any
Modifier.scrollAway(scrollState: ScrollState, offset: Dp)

根据ScrollState垂直滚动项目使其进入/离开视图。

范围:Any
Modifier.scrollAway(
    scrollState: LazyListState,
    itemIndex: Int,
    offset: Dp
)

根据LazyListState垂直滚动项目使其进入/离开视图。

范围:Any
Modifier.scrollAway(
    scrollState: ScalingLazyListState,
    itemIndex: Int,
    offset: Dp
)

根据ScalingLazyListState垂直滚动项目使其进入/离开视图。

范围:Any
Modifier. scrollAway(
    scrollState: ScalingLazyListState,
    itemIndex: Int,
    offset: Dp
)

此函数已废弃。此重载用于向后兼容 Wear OS 1.1 版的 Compose。新版重载可从 wear.compose.foundation.lazy 包中获取,它使用 ScalingLazyListState。

范围:Any
Modifier.horizontalScroll(
    state: ScrollState,
    enabled: Boolean,
    flingBehavior: FlingBehavior?,
    reverseScrolling: Boolean
)

修改元素,允许内容宽度大于最大约束时水平滚动。

范围:Any
Modifier.horizontalScroll(
    state: ScrollState,
    overscrollEffect: OverscrollEffect?,
    enabled: Boolean,
    flingBehavior: FlingBehavior?,
    reverseScrolling: Boolean
)

修改元素,允许内容宽度大于最大约束时水平滚动。

范围:Any
Modifier.verticalScroll(
    state: ScrollState,
    enabled: Boolean,
    flingBehavior: FlingBehavior?,
    reverseScrolling: Boolean
)

修改元素,允许内容高度大于最大约束时垂直滚动。

范围:Any
Modifier.verticalScroll(
    state: ScrollState,
    overscrollEffect: OverscrollEffect?,
    enabled: Boolean,
    flingBehavior: FlingBehavior?,
    reverseScrolling: Boolean
)

修改元素,允许内容高度大于最大约束时垂直滚动。

范围:Any

一个修饰符,可为TransformingLazyColumn项目中的内容启用 Material3 运动变换。

范围:Any
@Composable
Modifier.scrollTransform(
    scope: TransformingLazyColumnItemScope,
    backgroundColor: Color,
    shape: Shape
)

一个修饰符,可为TransformingLazyColumn项目中的内容启用 Material3 运动变换。

范围:Any
@Composable
Modifier.scrollTransform(
    scope: TransformingLazyColumnItemScope,
    shape: Shape,
    painter: Painter,
    border: BorderStroke?
)

一个修饰符,可为TransformingLazyColumn项目中的内容启用 Material3 运动变换。

范围:Any
Modifier.scrollable(
    state: ScrollableState,
    orientation: Orientation,
    enabled: Boolean,
    reverseDirection: Boolean,
    flingBehavior: FlingBehavior?,
    interactionSource: MutableInteractionSource?
)

为 UI 元素配置单一Orientation中的触摸滚动和快速滑动。

范围:Any
Modifier.scrollable(
    state: ScrollableState,
    orientation: Orientation,
    overscrollEffect: OverscrollEffect?,
    enabled: Boolean,
    reverseDirection: Boolean,
    flingBehavior: FlingBehavior?,
    interactionSource: MutableInteractionSource?,
    bringIntoViewSpec: BringIntoViewSpec?
)

为 UI 元素配置单一Orientation中的触摸滚动和快速滑动。

范围:Any

在 Android R 及更高版本上,将软键盘作为嵌套滚动进行控制。

大小

范围:Any
Modifier.animateContentSize(
    animationSpec: FiniteAnimationSpec<IntSize>,
    finishedListener: ((initialValue: IntSize, targetValue: IntSize) -> Unit)?
)

当其子修饰符(或已处于链尾的子可组合项)更改大小时,此修饰符会动画显示其自身大小。

范围:Any
Modifier.animateContentSize(
    animationSpec: FiniteAnimationSpec<IntSize>,
    alignment: Alignment,
    finishedListener: ((initialValue: IntSize, targetValue: IntSize) -> Unit)?
)

当其子修饰符(或已处于链尾的子可组合项)更改大小时,此修饰符会动画显示其自身大小。

范围:Any
Modifier.aspectRatio(
    ratio: @FloatRange(from = 0.0, fromInclusive = false) Float,
    matchHeightConstraintsFirst: Boolean
)

尝试根据指定宽高比调整内容大小,方法是尝试按以下顺序匹配传入约束之一:如果matchHeightConstraintsFirstfalse(默认值),则按Constraints.maxWidthConstraints.maxHeightConstraints.minWidthConstraints.minHeight的顺序;如果matchHeightConstraintsFirsttrue,则按Constraints.maxHeightConstraints.maxWidthConstraints.minHeightConstraints.minWidth的顺序。

范围:Any

如果元素尺寸较小,则至少保留 48 dp 的尺寸,以便区分触摸交互。

范围:Any

如果元素尺寸较小,则至少保留 48 dp 的尺寸,以便区分触摸交互。

范围:Any

如果元素尺寸较小,则至少保留 48 dp 的尺寸,以便区分触摸交互。

范围:Any

如果元素尺寸较小,则至少保留 48 dp 的尺寸,以便区分触摸交互。

范围:Any
Modifier.height(intrinsicSize: IntrinsicSize)

声明内容的优选高度与内容的最小或最大固有高度相同。

范围:Any

声明内容的高度与内容的最小或最大固有高度完全相同。

范围:Any

声明内容的宽度与内容的最小或最大固有宽度完全相同。

范围:Any
Modifier.width(intrinsicSize: IntrinsicSize)

声明内容的优选宽度与内容的最小或最大固有宽度相同。

范围:Any
Modifier.onSizeChanged(onSizeChanged: (IntSize) -> Unit)

当修改后的 Compose UI 元素首次测量或其大小发生变化时,将调用此函数,并传入元素的大小。

范围:Any
Modifier.defaultMinSize(minWidth: Dp, minHeight: Dp)

仅当封装布局未受约束时才约束其大小:仅当传入的相应约束为0时,才应用minWidthminHeight约束。

范围:Any
Modifier.fillMaxHeight(fraction: @FloatRange(from = 0.0, to = 1.0) Float)

通过将最小高度最大高度设置为等于最大高度乘以fraction,使内容(可能仅部分)填充传入测量约束的Constraints.maxHeight

范围:Any
Modifier.fillMaxSize(fraction: @FloatRange(from = 0.0, to = 1.0) Float)

通过将最小宽度最大宽度设置为等于最大宽度乘以fraction,以及将最小高度最大高度设置为等于最大高度乘以fraction,使内容(可能仅部分)填充传入测量约束的Constraints.maxWidthConstraints.maxHeight

范围:Any
Modifier.fillMaxWidth(fraction: @FloatRange(from = 0.0, to = 1.0) Float)

通过将最小宽度最大宽度设置为等于最大宽度乘以fraction,使内容(可能仅部分)填充传入测量约束的Constraints.maxWidth

范围:Any
Modifier.height(height: Dp)

声明内容的优选高度精确为heightdp。

范围:Any
Modifier.heightIn(min: Dp, max: Dp)

根据传入测量Constraints的允许,将内容高度约束在mindp和maxdp之间。

范围:Any

声明内容的高度精确为heightdp。

范围:Any
Modifier.requiredHeightIn(min: Dp, max: Dp)

将内容高度约束在mindp和maxdp之间。

范围:Any

声明内容的宽度和高度精确为sizedp。

范围:Any

声明内容的大小精确为size

范围:Any
Modifier.requiredSize(width: Dp, height: Dp)

声明内容的宽度精确为widthdp,高度精确为heightdp。

范围:Any
Modifier.requiredSizeIn(
    minWidth: Dp,
    minHeight: Dp,
    maxWidth: Dp,
    maxHeight: Dp
)

将内容的宽度约束在minWidthdp和maxWidthdp之间,将内容的高度约束在minHeightdp和maxHeightdp之间。

范围:Any

声明内容的宽度精确为widthdp。

范围:Any
Modifier.requiredWidthIn(min: Dp, max: Dp)

将内容的宽度约束在mindp和maxdp之间。

范围:Any
Modifier.size(size: Dp)

声明内容的优选尺寸精确为sizedp的正方形。

范围:Any
Modifier.size(size: DpSize)

声明内容的优选大小精确为size

范围:Any
Modifier.size(width: Dp, height: Dp)

声明内容的优选宽度精确为widthdp,高度精确为heightdp。

范围:Any
Modifier.sizeIn(minWidth: Dp, minHeight: Dp, maxWidth: Dp, maxHeight: Dp)

根据传入测量Constraints的允许,将内容的宽度约束在minWidthdp和maxWidthdp之间,将内容的高度约束在minHeightdp和maxHeightdp之间。

范围:Any
Modifier.width(width: Dp)

声明内容的优选宽度精确为widthdp。

范围:Any
Modifier.widthIn(min: Dp, max: Dp)

根据传入测量Constraints的允许,将内容的宽度约束在mindp和maxdp之间。

范围:Any
Modifier.wrapContentHeight(
    align: Alignment.Vertical,
    unbounded: Boolean
)

允许内容以其所需高度进行测量,不考虑传入测量的最小高度约束,如果unbounded为 true,也不考虑传入测量的最大高度约束

范围:Any
Modifier.wrapContentSize(align: Alignment, unbounded: Boolean)

允许内容以其所需尺寸进行测量,不考虑传入测量的最小宽度最小高度约束,如果unbounded为 true,也不考虑传入的最大约束。

范围:Any
Modifier.wrapContentWidth(
    align: Alignment.Horizontal,
    unbounded: Boolean
)

允许内容以其所需宽度进行测量,不考虑传入测量的最小宽度约束,如果unbounded为 true,也不考虑传入测量的最大宽度约束

范围:Any

此修饰符在变形过渡期间向scrollTransform提供目标可组合项的高度,并表示变形后项目的最小高度。

范围:Any

用于为IconButton和 TextButton 设置大小和推荐的触摸目标的修饰符。

范围:Any

将高度设置为屏幕bottominsets的高度。

范围:Any

根据LayoutDirection,将宽度设置为屏幕endinsets的宽度,使用leftright

范围:Any

根据LayoutDirection,将宽度设置为屏幕startinsets的宽度,使用leftright

范围:Any

将高度设置为屏幕topinsets的高度。

范围: RowScope
weight(
    weight: @FloatRange(from = 0.0, fromInclusive = false) Float,
    fill: Boolean
)

将元素的宽度调整为与其在Row中其他加权同级元素的weight成比例。

范围: ColumnScope
weight(
    weight: @FloatRange(from = 0.0, fromInclusive = false) Float,
    fill: Boolean
)

将元素的高度调整为与其在Column中其他加权同级元素的weight成比例。

范围: FlowRowScope
@ExperimentalLayoutApi
fillMaxRowHeight(fraction: @FloatRange(from = 0.0, to = 1.0) Float)

使项目(可能仅部分)填充其所在行中最高项目的最大高度,在FlowRow内。

范围: FlowColumnScope
@ExperimentalLayoutApi
fillMaxColumnWidth(
    fraction: @FloatRange(from = 0.0, to = 1.0) Float
)

使项目(可能仅部分)填充其所在列中最宽项目的最大宽度,在FlowColumn内。

范围: BoxScope

测量所有其他内容元素后,将元素调整为与Box的大小匹配。

范围: LazyItemScope
fillParentMaxHeight(
    fraction: @FloatRange(from = 0.0, to = 1.0) Float
)

通过将最小高度设置为等于最大高度乘以fraction,使内容填充传入测量约束的Constraints.maxHeight

范围: LazyItemScope
fillParentMaxSize(
    fraction: @FloatRange(from = 0.0, to = 1.0) Float
)

通过将最小宽度设置为等于最大宽度乘以fraction,以及将最小高度设置为等于最大高度乘以fraction,使内容填充父级测量约束的Constraints.maxWidthConstraints.maxHeight

范围: LazyItemScope
fillParentMaxWidth(
    fraction: @FloatRange(from = 0.0, to = 1.0) Float
)

通过将最小宽度设置为等于最大宽度乘以fraction,使内容填充父级测量约束的Constraints.maxWidth

抽象
Modifier.exposedDropdownSize(matchTextFieldWidth: Boolean)

应应用于放置在此范围内的ExposedDropdownMenu的修饰符。

抽象
Modifier.exposedDropdownSize(matchAnchorWidth: Boolean)

应应用于放置在ExposedDropdownMenuBoxScope内菜单的修饰符。

此修饰符指定窗格的优选宽度,当关联窗格作为固定窗格(即不拉伸以填充剩余空间的窗格)呈现时,窗格脚手架实现将尽力遵守此宽度。

测试

范围:Any

应用标签以允许在测试中找到修改后的元素。

变换

范围:Any
Modifier.rotate(degrees: Float)

设置视图围绕可组合项中心旋转的度数。

范围:Any
Modifier.scale(scale: Float)

按相同比例因子均匀缩放水平和垂直轴上的内容。

范围:Any
Modifier.scale(scaleX: Float, scaleY: Float)

分别沿水平和垂直轴按以下比例因子缩放可组合项的内容。

范围:Any
Modifier.transformable(
    state: TransformableState,
    lockRotationOnZoomPan: Boolean,
    enabled: Boolean
)

启用修改后的 UI 元素的变换手势。

范围:Any
Modifier.transformable(
    state: TransformableState,
    canPan: (Offset) -> Boolean,
    lockRotationOnZoomPan: Boolean,
    enabled: Boolean
)

启用修改后的 UI 元素的变换手势。

其他

范围:Any

此函数已废弃。已由带有回调的重载取代,用于获取传输数据,启动检测由 Compose 本身执行。

范围:Any
Modifier.basicMarquee(
    iterations: Int,
    animationMode: MarqueeAnimationMode,
    repeatDelayMillis: Int,
    initialDelayMillis: Int,
    spacing: MarqueeSpacing,
    velocity: Dp
)

如果修改后的内容太宽无法适应可用空间,则对其应用动画跑马灯效果。

范围:Any
Modifier.edgeSwipeToDismiss(
    swipeToDismissBoxState: SwipeToDismissBoxState,
    edgeWidth: Dp
)

将滑动以关闭的活动范围限制为仅视口边缘。

范围:Any
Modifier.blur(radius: Dp, edgeTreatment: BlurredEdgeTreatment)

绘制具有指定半径的模糊内容。

范围:Any
Modifier.blur(
    radiusX: Dp,
    radiusY: Dp,
    edgeTreatment: BlurredEdgeTreatment
)

绘制具有指定半径的模糊内容。

范围:Any
Modifier.bringIntoViewRequester(
    bringIntoViewRequester: BringIntoViewRequester
)

可用于发送bringIntoView请求的修饰符。

范围:Any

此函数已废弃。请改用 BringIntoViewModifierNode。

范围:Any
Modifier.composed(
    inspectorInfo: InspectorInfo.() -> Unit,
    factory: @Composable Modifier.() -> Modifier
)

声明Modifier的即时组合,它将为 Modifier 修改的每个元素进行组合。

范围:Any
Modifier.composed(
    fullyQualifiedName: String,
    key1: Any?,
    inspectorInfo: InspectorInfo.() -> Unit,
    factory: @Composable Modifier.() -> Modifier
)

声明Modifier的即时组合,它将为 Modifier 修改的每个元素进行组合。

范围:Any
Modifier.composed(
    fullyQualifiedName: String,
    vararg keys: Any?,
    inspectorInfo: InspectorInfo.() -> Unit,
    factory: @Composable Modifier.() -> Modifier
)

声明Modifier的即时组合,它将为 Modifier 修改的每个元素进行组合。

范围:Any
Modifier.composed(
    fullyQualifiedName: String,
    key1: Any?,
    key2: Any?,
    inspectorInfo: InspectorInfo.() -> Unit,
    factory: @Composable Modifier.() -> Modifier
)

声明Modifier的即时组合,它将为 Modifier 修改的每个元素进行组合。

范围:Any
Modifier.composed(
    fullyQualifiedName: String,
    key1: Any?,
    key2: Any?,
    key3: Any?,
    inspectorInfo: InspectorInfo.() -> Unit,
    factory: @Composable Modifier.() -> Modifier
)

声明Modifier的即时组合,它将为 Modifier 修改的每个元素进行组合。

范围:Any
Modifier.dragAndDropSource(
    transferData: (Offset) -> DragAndDropTransferData?
)

一个Modifier,允许对其应用元素作为拖放操作的源。

范围:Any
@ExperimentalFoundationApi
Modifier. dragAndDropSource(
    drawDragDecoration: DrawScope.() -> Unit,
    block: suspend DragAndDropSourceScope.() -> Unit
)

此函数已废弃。已由带有回调的重载取代,用于获取传输数据,启动检测由 Compose 本身执行。

范围:Any
Modifier.dragAndDropSource(
    drawDragDecoration: DrawScope.() -> Unit,
    transferData: (Offset) -> DragAndDropTransferData?
)

一个Modifier,允许对其应用元素作为拖放操作的源。

范围:Any
Modifier.dragAndDropTarget(
    shouldStartDragAndDrop: (startEvent: DragAndDropEvent) -> Boolean,
    target: DragAndDropTarget
)

一个允许接收拖放手势的修饰符。

范围:Any

此函数已废弃。请改用 systemGestureExclusion。

范围:Any

此函数已废弃。请改用 systemGestureExclusion。

范围:Any
Modifier.handwritingDetector(callback: () -> Unit)

配置一个元素作为手写检测器,该检测器可检测手写笔书写,并将识别的文本处理委托给另一个元素。

范围:Any

配置一个元素作为手写笔书写处理器,它可以处理由手写笔在手写检测器上触发的手写会话中的文本输入。

范围:Any
Modifier.hoverable(
    interactionSource: MutableInteractionSource,
    enabled: Boolean
)

通过指针进入/退出事件配置组件以可悬停。

范围:Any
inline
Modifier. inspectable(
    noinline inspectorInfo: InspectorInfo.() -> Unit,
    factory: Modifier.() -> Modifier
)

此函数已废弃。此 API 会导致修饰符出现不必要的更多无效化,因此不建议使用。

范围:Any
Modifier.approachLayout(
    isMeasurementApproachInProgress: (lookaheadSize: IntSize) -> Boolean,
    isPlacementApproachInProgress: Placeable.PlacementScope.(lookaheadCoordinates: LayoutCoordinates) -> Boolean,
    approachMeasure: ApproachMeasureScope.(measurable: Measurable, constraints: Constraints) -> MeasureResult
)

创建一个渐进式布局,旨在帮助逐步接近预测量传递中计算的目标布局。

范围:Any
Modifier.magnifier(
    sourceCenter: Density.() -> Offset,
    magnifierCenter: (Density.() -> Offset)?,
    onSizeChanged: ((DpSize) -> Unit)?,
    zoom: Float,
    size: DpSize,
    cornerRadius: Dp,
    elevation: Dp,
    clip: Boolean
)

显示一个Magnifier小组件,它显示相对于当前布局节点的sourceCenter处内容的放大版本。

范围:Any

一个 Modifier,可用于消费此修饰符左侧或布局树中此修饰符上方其他修饰符提供的ModifierLocal

范围:Any
<T :Any?> Modifier.modifierLocalProvider(
    key: ProvidableModifierLocal<T>,
    value: () -> T
)

一个 Modifier,可用于提供ModifierLocal,此修饰符右侧的其他修饰符或此修饰符所附着布局节点的子修饰符可以读取这些 ModifierLocal。

范围:Any
Modifier.onLayoutRectChanged(
    throttleMillis: Long,
    debounceMillis: Long,
    callback: (RelativeLayoutBounds) -> Unit
)

调用callback,并传入此布局节点相对于组合根坐标系统以及屏幕坐标和窗口坐标的位置。

范围:Any

在父级LayoutModifier和父级布局放置后以及子级LayoutModifier放置前调用onPlaced

范围:Any
@ExperimentalWearMaterialApi
@Composable
Modifier.placeholder(
    placeholderState: PlaceholderState,
    shape: Shape,
    color: Color
)

在可组合项顶部绘制占位符形状,并动画显示擦除效果以移除占位符。

范围:Any
@Composable
Modifier.placeholder(
    placeholderState: PlaceholderState,
    shape: Shape,
    color: Color
)

在可组合项顶部绘制占位符形状,并动画显示擦除效果以移除占位符。

范围:Any
@ExperimentalWearMaterialApi
@Composable
Modifier.placeholderShimmer(
    placeholderState: PlaceholderState,
    shape: Shape,
    color: Color
)

用于在组件上绘制占位符闪光效果的修饰符。

范围:Any
@Composable
Modifier.placeholderShimmer(
    placeholderState: PlaceholderState,
    shape: Shape,
    color: Color
)

用于在组件上绘制占位符闪光效果的修饰符。

范围:Any
Modifier.stylusHoverIcon(
    icon: PointerIcon,
    overrideDescendants: Boolean,
    touchBoundsExpansion: DpTouchBoundsExpansion?
)

当手写笔悬停在元素上时,此修饰符允许开发者定义要显示的指针图标。

范围:Any
Modifier.motionEventSpy(watcher: (motionEvent: MotionEvent) -> Unit)

调用watcher,并传入布局区域或任何子pointerInput接收到的每个MotionEvent

范围:Any

将布局矩形标记为优选避开浮动窗口。

范围:Any

在本地布局坐标内标记一个矩形,该矩形优先避开浮动窗口。

范围:Any

一个修饰符,用于根据给定的 PullRefreshState 转换下拉刷新指示器的位置并缩放其大小。

范围:Any

一个嵌套滚动修饰符,它向 state 提供滚动事件。

范围:Any
@ExperimentalMaterialApi
Modifier.pullRefresh(
    onPull: (pullDelta: Float) -> Float,
    onRelease: suspend (flingVelocity: Float) -> Float,
    enabled: Boolean
)

一个嵌套滚动修饰符,它提供 onPullonRelease 回调,以帮助构建自定义下拉刷新组件。

范围:Any
@ExperimentalMaterial3Api
Modifier.pullToRefresh(
    isRefreshing: Boolean,
    state: PullToRefreshState,
    enabled: Boolean,
    threshold: Dp,
    onRefresh: () -> Unit
)

一个添加嵌套滚动功能的修饰符,用于支持容器的下拉刷新手势。

范围:Any

将当前节点和所有子节点配置为内容接收器。

范围:Any
Modifier.sensitiveContent(isContentSensitive: Boolean)

此修饰符提示可组合项在屏幕上渲染敏感内容(即用户名、密码、信用卡等),并且在支持的环境中进行屏幕共享时,内容应受到保护。

范围:Any
Modifier.onInterceptKeyBeforeSoftKeyboard(
    onInterceptKeyBeforeSoftKeyboard: (KeyEvent) -> Boolean
)

将此 modifier 添加到组件的 modifier 参数中,将允许其在硬件按键事件发送到软键盘之前对其进行拦截。

范围:Any
Modifier.onPreInterceptKeyBeforeSoftKeyboard(
    onPreInterceptKeyBeforeSoftKeyboard: (KeyEvent) -> Boolean
)

将此 modifier 添加到组件的 modifier 参数中,将允许其在硬件按键事件发送到软键盘之前对其进行拦截。

范围:Any
Modifier. edgeSwipeToDismiss(
    swipeToDismissBoxState: SwipeToDismissBoxState,
    edgeWidth: Dp
)

此函数已弃用。SwipeToDismiss 已迁移到 androidx.wear.compose.foundation。

范围:Any

将布局矩形排除在系统手势之外。

范围:Any

将本地布局坐标内的一个矩形排除在系统手势之外。

范围:Any

消费尚未被其他内边距修饰符消费的内边距,类似于 windowInsetsPadding,但不添加任何填充。

范围:Any

paddingValues 作为内边距消费,就好像无论内边距如何,填充都已添加。

范围:Any
Modifier.onConsumedWindowInsetsChanged(
    block: (consumedWindowInsets: WindowInsets) -> Unit
)

调用 block,传入已被消费的 WindowInsets,无论是通过 consumeWindowInsets 还是其中一个填充修饰符(例如 imePadding)。

范围:Any

这会根据大小和位置重新计算 WindowInsets

此函数已弃用。请使用接受 ExposedDropdownMenuAnchorType 和 enabled 参数的重载。

抽象
Modifier.menuAnchor(
    type: ExposedDropdownMenuAnchorType,
    enabled: Boolean
)

应应用于 ExposedDropdownMenuBoxScope 内元素的修饰符,通常是文本字段或文本字段内的图标。