Compose 修饰符列表

操作

范围:任何
@ExperimentalFoundationApi
<T : Any?> Modifier.anchoredDraggable(
    state: AnchoredDraggableState<T>,
    orientation: Orientation,
    enabled: Boolean,
    reverseDirection: Boolean,
    interactionSource: MutableInteractionSource?
)

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

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

配置组件以通过输入或辅助功能“点击”事件接收点击。

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

配置组件以通过输入或辅助功能“点击”事件接收点击。

范围:任何
@ExperimentalFoundationApi
Modifier.combinedClickable(
    enabled: Boolean,
    onClickLabel: String?,
    role: Role?,
    onLongClickLabel: String?,
    onLongClick: (() -> Unit)?,
    onDoubleClick: (() -> Unit)?,
    onClick: () -> Unit
)

配置组件以通过输入或辅助功能“点击”事件接收点击、双击和长按。

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

配置组件以通过输入或辅助功能“点击”事件接收点击、双击和长按。

范围:任何
@ExperimentalFoundationApi
Modifier.mouseClickable(
    enabled: Boolean,
    onClickLabel: String?,
    role: Role?,
    onClick: MouseClickScope.() -> Unit
)

创建一个类似于 Modifier.clickable 的修饰符,但它提供有关按下按钮和键盘修饰符的附加上下文信息

范围:任何
@ExperimentalFoundationApi
Modifier.draggable2D(
    state: Draggable2DState,
    enabled: Boolean,
    interactionSource: MutableInteractionSource?,
    startDragImmediately: Boolean,
    onDragStarted: suspend CoroutineScope.(startedPosition: Offset) -> Unit,
    onDragStopped: suspend CoroutineScope.(velocity: Velocity) -> Unit,
    reverseDirection: Boolean
)

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

范围:任何
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 的触摸拖动。

范围:任何

使用此修饰符将 selectable 项目(如选项卡或单选按钮)分组在一起,以用于辅助功能目的。

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

配置组件以使其可选择,通常作为互斥组的一部分,其中一次只能选择一项。

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

配置组件以使其可选择,通常作为互斥组的一部分,其中一次只能选择一项。

范围:任何
@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 替换。

范围:任何
@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
)

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

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

配置组件以使其通过输入和辅助功能事件可切换

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

配置组件以使其通过输入和辅助功能事件可切换。

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

配置组件以使其通过输入和辅助功能事件可切换,具有三种状态:开、关和不确定。

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

配置组件以使其通过输入和辅助功能事件可切换,具有三种状态:开、关和不确定。

对齐

范围: 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)

将内容元素拉到 Alignment 中的特定位置,该位置在 Box 中。

动画

打开
@ExperimentalAnimationApi
Modifier.animateEnterExit(
    enter: EnterTransition,
    exit: ExitTransition,
    label: String
)

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

作用域: LazyItemScope

此修饰符为 Lazy 列表中的项目放置动画。

此修饰符为网格中的项目放置动画。

边框

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

修改元素以添加边框,边框的外观由 bordershape 指定,并对其进行裁剪。

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

修改元素以添加边框,边框的外观由 widthbrushshape 指定,并对其进行裁剪。

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

修改元素以添加边框,边框的外观由 widthcolorshape 指定,并对其进行裁剪。

绘制

范围:任何
Modifier.alpha(alpha: Float)

绘制具有修改后的 alpha 值的内容,该值可能小于 1。

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

在内容后面绘制具有实色 colorshape

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

在内容后面绘制具有 brushshape

范围:任何
Modifier.clip(shape: Shape)

将内容裁剪为 shape

范围:任何

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

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

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

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

DrawScope 中绘制,其中内容在绘制调用中持续存在,只要绘制区域的大小相同,或者读取的任何状态对象未更改。

范围:任何

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

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

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

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

使用 painter 绘制内容。

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

创建一个 graphicsLayer,用于绘制阴影。

范围:任何

添加填充以适应 安全绘制 内边距。

范围:任何
Modifier.zIndex(zIndex: Float)

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

焦点

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

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

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

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

范围:任何

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

范围:任何

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

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

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

范围:任何
Modifier. focusOrder(focusRequester: FocusRequester)

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

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

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

范围:任何

此修饰符允许您指定对 focusTargets 可访问的属性,这些属性位于修饰符链中更低的位置或子布局节点上。

范围:任何

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

范围:任何

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

范围:任何

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

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

配置组件以通过焦点系统或辅助功能“焦点”事件可聚焦。

范围:任何

只要当前聚焦区域的边界发生变化,就会调用 onPositioned

图形

范围:任何

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

范围:任何
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,使内容绘制到绘图层中。

范围:任何

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

键盘

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

将此 modifier 添加到组件的 modifier 参数将允许它在 (或其子级) 聚焦时拦截硬件按键事件。

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

将此 modifier 添加到组件的 modifier 参数将允许它在 (或其子级) 聚焦时拦截硬件按键事件。

布局

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

替代 androidx.compose.ui.layout.layoutId,使您可以使用 tag

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

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

范围:任何

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

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

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

填充

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

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

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

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

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

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

范围:任何

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

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

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

范围:任何

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

范围:任何
Modifier.padding(paddingValues: PaddingValues)

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

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

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

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

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

范围:任何

添加填充以容纳 标题栏 内边距。

范围:任何

添加填充以容纳 显示 cutout

范围:任何

添加填充以容纳 ime 内边距。

范围:任何

添加填充以容纳 强制系统手势 内边距。

范围:任何

添加填充以容纳 导航栏 内边距。

范围:任何

添加填充以容纳 安全内容 内边距。

范围:任何

添加填充以容纳 安全手势 内边距。

范围:任何

添加填充以容纳 状态栏 内边距。

范围:任何

添加填充以容纳 系统栏 内边距。

范围:任何

添加填充以容纳 系统手势 内边距。

范围:任何

添加填充以容纳 瀑布 内边距。

范围:任何

添加填充,使内容不会进入 insets 空间。

指针

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

Modifier 允许开发人员定义一个指针图标,当光标悬停在元素上时显示该图标。

范围:任何
@ExperimentalComposeUiApi
Modifier.pointerInteropFilter(
    requestDisallowInterceptTouchEvent: RequestDisallowInterceptTouchEvent?,
    onTouchEvent: (MotionEvent) -> Boolean
)

一个特殊的 PointerInputModifier,它提供了对最初分派给 Compose 的基础 MotionEvent 的访问权限。

范围:任何
@ExperimentalComposeUiApi
Modifier.pointerMoveFilter(
    onMove: (position: Offset) -> Boolean,
    onExit: () -> Boolean,
    onEnter: () -> Boolean
)

Modifier 允许跟踪指针(如鼠标或触控板)移动事件。

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

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

范围:任何
Modifier.pointerInput(key1: Any?, block: suspend PointerInputScope.() -> Unit)

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

范围:任何
Modifier.pointerInput(vararg keys: Any?, block: suspend PointerInputScope.() -> Unit)

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

范围:任何
Modifier.pointerInput(key1: Any?, key2: Any?, block: suspend PointerInputScope.() -> Unit)

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

位置

范围:任何

将内容偏移 offset 像素。

范围:任何

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

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

将内容偏移 offset 像素。

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

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

Modifier.tabIndicatorOffset(currentTabPosition: TabPosition)

ModifierTabRow 中占用所有可用宽度,然后根据 currentTabPosition 动画指示器偏移。

Modifier.tabIndicatorOffset(currentTabPosition: TabPosition)

ModifierTabRow 中占用所有可用宽度,然后根据 currentTabPosition 动画指示器偏移。

语义

范围:任何

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

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

包含用于确定进度指示器或滑块的进度部分的 semantics,表示在 valueRange 内的进度。

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

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

范围:任何

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

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

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

滚动

范围:任何

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

范围:任何
Modifier. mouseScrollFilter(
    onMouseScroll: (event: MouseScrollEvent, bounds: IntSize) -> Boolean
)

此函数已弃用。请使用 Modifier.pointerInput + PointerEventType.Scroll

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

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

范围:任何

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

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

将此 modifier 添加到组件的 modifier 参数将允许它拦截 RotaryScrollEvent,如果它(或其子级)处于焦点状态。

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

将此 modifier 添加到组件的 modifier 参数将允许它拦截 RotaryScrollEvent,如果它(或其子级)处于焦点状态。

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

基于 ScrollState 垂直滚动项目进出视图。

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

基于 LazyListState 垂直滚动项目进出视图。

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

基于 ScalingLazyListState 垂直滚动项目进出视图。

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

此函数已弃用。此重载提供与 Compose for Wear OS 1.1 的向后兼容性。可以使用新的重载,它使用来自 wear.compose.foundation.lazy 包的 ScalingLazyListState

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

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

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

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

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

在单个 Orientation 中配置 UI 元素的触摸滚动和抛掷。

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

在单个 Orientation 中配置 UI 元素的触摸滚动和抛掷。

范围:任何
@ExperimentalTvFoundationApi
Modifier.scrollableWithPivot(
    state: ScrollableState,
    orientation: Orientation,
    pivotOffsets: PivotOffsets,
    enabled: Boolean,
    reverseDirection: Boolean
)

在单个 Orientation 中配置 UI 元素的触摸滚动和抛掷。

范围:任何

控制 Android R 及更高版本中的软键盘作为嵌套滚动。

尺寸

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

当子修饰符(或如果它已经是链的末尾,则子可组合项)的尺寸发生变化时,此修饰符会动画显示其自身的尺寸。

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

尝试通过尝试匹配以下顺序中的一个传入约束来调整内容的大小以匹配指定的纵横比:Constraints.maxWidthConstraints.maxHeightConstraints.minWidthConstraints.minHeight(如果matchHeightConstraintsFirstfalse(这是默认值),或Constraints.maxHeightConstraints.maxWidthConstraints.minHeightConstraints.minWidth,如果matchHeightConstraintsFirsttrue

范围:任何

如果元素测量结果小于 48.dp,则保留至少 48.dp 的尺寸来消除触摸交互的歧义。

范围:任何

如果元素测量结果小于 48.dp,则保留至少 48.dp 的尺寸来消除触摸交互的歧义。

范围:任何

如果元素测量结果小于 48.dp,则保留至少 48.dp 的尺寸来消除触摸交互的歧义。

范围:任何
Modifier.height(intrinsicSize: IntrinsicSize)

声明内容的首选高度与内容的最小或最大内在高度相同。

范围:任何

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

范围:任何

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

范围:任何
Modifier.width(intrinsicSize: IntrinsicSize)

声明内容的首选宽度与内容的最小或最大内在宽度相同。

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

当元素第一次测量或元素的尺寸发生变化时,使用修改后的 Compose UI 元素的尺寸调用该方法。

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

仅当包装布局在其他情况下不受约束时才约束其大小:仅当传入的对应约束为0时,才会应用minWidthminHeight 约束。

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

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

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

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

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

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

范围:任何
Modifier.height(height: Dp)

声明内容的首选高度应为 heightdp。

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

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

范围:任何

声明内容的高度应为 heightdp。

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

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

范围:任何

声明内容的大小应为 sizedp 宽度和高度。

范围:任何

声明内容的大小应为 size

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

将内容的大小声明为正好widthdp 和 heightdp。

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

将内容的宽度限制在minWidthdp 和 maxWidthdp 之间,并将内容的高度限制在minHeightdp 和 maxHeightdp 之间。

范围:任何

将内容的宽度声明为正好widthdp。

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

将内容的宽度限制在mindp 和 maxdp 之间。

范围:任何
Modifier.size(size: Dp)

将内容的首选大小声明为正好sizedp 正方形。

范围:任何
Modifier.size(size: DpSize)

将内容的首选大小声明为正好size

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

将内容的首选大小声明为正好widthdp x heightdp。

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

将内容的宽度限制在minWidthdp 和 maxWidthdp 之间,并将内容的高度限制在minHeightdp 和 maxHeightdp 之间,前提是输入的测量 Constraints 允许这样做。

范围:任何
Modifier.width(width: Dp)

将内容的首选宽度声明为正好widthdp。

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

将内容的宽度限制在mindp 和 maxdp 之间,前提是输入的测量 Constraints 允许这样做。

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

允许内容在不考虑输入的测量 最小高度约束 的情况下,根据其所需高度进行测量,并且,如果 unbounded 为 true,则也不考虑输入的测量 最大高度约束

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

允许内容在不考虑输入的测量 最小宽度最小高度 约束的情况下,根据其所需大小进行测量,并且,如果 unbounded 为 true,则也不考虑输入的最大约束。

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

允许内容在不考虑输入的测量 最小宽度约束 的情况下,根据其所需宽度进行测量,并且,如果 unbounded 为 true,则也不考虑输入的测量 最大宽度约束

范围:任何

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

范围:任何

将高度设置为屏幕 底部insets 高度。

范围:任何

将宽度设置为屏幕 末尾insets 宽度,使用 leftright,具体取决于 LayoutDirection

范围:任何

将宽度设置为屏幕 开头insets 宽度,使用 leftright,具体取决于 LayoutDirection

范围:任何

将高度设置为屏幕 顶部insets 高度。

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

将元素的宽度大小设置为与其 weight 相比,相对于 Row 中其他加权兄弟元素的比例。

作用域: ColumnScope
Modifier.weight(
    weight: @FloatRange(from = 0.0, fromInclusive = false) Float,
    fill: Boolean
)

元素的高度与其在 weight 中相对于其他加权兄弟元素的比例成正比。 Column.

作用域: BoxScope

在所有其他内容元素测量完毕后,将元素大小调整为与 Box 的大小一致。

作用域: LazyItemScope
Modifier.fillParentMaxHeight(
    fraction: @FloatRange(from = 0.0, to = 1.0) Float
)

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

作用域: LazyItemScope
Modifier.fillParentMaxSize(
    fraction: @FloatRange(from = 0.0, to = 1.0) Float
)

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

作用域: LazyItemScope
Modifier.fillParentMaxWidth(
    fraction: @FloatRange(from = 0.0, to = 1.0) Float
)

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

Modifier.exposedDropdownSize(matchTextFieldWidth: Boolean)

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

Modifier.exposedDropdownSize(matchTextFieldWidth: Boolean)

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

测试

范围:任何

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

转换

范围:任何
Modifier.rotate(degrees: Float)

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

范围:任何
Modifier.scale(scale: Float)

使用相同的缩放因子统一缩放水平和垂直轴的内容。

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

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

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

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

范围:任何
@ExperimentalFoundationApi
Modifier.transformable(
    state: TransformableState,
    canPan: (Offset) -> Boolean,
    lockRotationOnZoomPan: Boolean,
    enabled: Boolean
)

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

其他

范围:任何

一个修饰符,允许将其应用于的元素被视为拖放操作的来源。

范围:任何
@ExperimentalFoundationApi
Modifier.basicMarquee(
    iterations: Int,
    animationMode: MarqueeAnimationMode,
    delayMillis: Int,
    initialDelayMillis: Int,
    spacing: MarqueeSpacing,
    velocity: Dp
)

如果修改的内容太宽以至于无法放入可用空间,则对其应用动画跑马灯效果。

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

使用指定的半径绘制模糊内容。

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

使用指定的半径绘制模糊内容。

范围:任何

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

范围:任何

一个父级,可以响应来自其子级的 BringIntoViewRequester 请求,并滚动以使该项目在屏幕上可见。

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

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

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

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

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

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

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

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

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

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

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

一个修饰符,允许将其应用于的元素被视为拖放操作的来源。

范围:任何
@ExperimentalFoundationApi
Modifier.dragAndDropTarget(
    onStarted: (event: DragAndDropEvent) -> Boolean,
    onDropped: (event: DragAndDropEvent) -> Boolean,
    onEntered: (event: DragAndDropEvent) -> Unit,
    onMoved: (event: DragAndDropEvent) -> Unit,
    onChanged: (event: DragAndDropEvent) -> Unit,
    onExited: (event: DragAndDropEvent) -> Unit,
    onEnded: (event: DragAndDropEvent) -> Unit
)

一个修饰符,允许从拖放手势接收数据。

范围:任何

此函数已弃用。 使用 systemGestureExclusion

范围:任何

此函数已弃用。 使用 systemGestureExclusion

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

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

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

使用此方法对一组常见的修饰符进行分组,并为生成的修饰符提供 InspectorInfo

范围:任何

创建一个中间布局,旨在帮助将布局从当前布局转换到前瞻性(即预先计算的未来)布局。

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

显示一个 Magnifier 小部件,该小部件显示当前布局节点中 sourceCenter 处的放大版内容。

范围:任何

一个修饰符,可用于使用 ModifierLocal,这些 ModifierLocal 由此修饰符左侧或布局树中此修饰符上方的其他修饰符提供。

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

一个修饰符,可用于提供 ModifierLocal,其他修饰符可以读取这些 ModifierLocal,这些修饰符位于此修饰符的右侧,或者与此修饰符附加到的布局节点为子节点的修饰符。

范围:任何

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

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

在可组合项的顶部绘制占位符形状,并对擦除效果进行动画处理,以移除占位符。

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

修饰符,用于在组件上绘制占位符闪烁。

范围:任何

使用布局区域或任何子 pointerInput 收到的每个 MotionEvent 调用 watcher

范围:任何

将布局矩形标记为希望保持远离浮动窗口。

范围:任何

将本地布局坐标中的矩形标记为希望保持远离浮动窗口。

范围:任何

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

范围:任何

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

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

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

范围:任何
@ExperimentalComposeUiApi
Modifier.onInterceptKeyBeforeSoftKeyboard(
    onInterceptKeyBeforeSoftKeyboard: (KeyEvent) -> Boolean
)

将此 modifier 添加到组件的 modifier 参数,将允许它在将硬件键盘事件发送到软件键盘之前拦截这些事件。

范围:任何
@ExperimentalComposeUiApi
Modifier.onPreInterceptKeyBeforeSoftKeyboard(
    onPreInterceptKeyBeforeSoftKeyboard: (KeyEvent) -> Boolean
)

将此 modifier 添加到组件的 modifier 参数,将允许它在将硬件键盘事件发送到软件键盘之前拦截这些事件。

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

仅限于从视窗边缘开始生效的滑动以隐藏。

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

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

范围:任何

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

范围:任何

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

范围:任何

消耗尚未被其他内嵌修饰器消耗的内嵌。类似于 windowInsetsPadding,但不会添加任何填充。

范围:任何

消耗 paddingValues 作为内嵌,就像填充被添加而不管内嵌。

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

使用已消耗的 WindowInsets 调用 block,这些内嵌要么由 consumeWindowInsets,要么由其中一个填充修饰符(如 imePadding)消耗。

作用域: TooltipBoxScope

当希望在长时间按压锚点可组合项后显示工具提示时,应应用于锚点可组合项的 Modifier

应应用于放置在作用域内的 TextField(或 OutlinedTextField)的 Modifier。