Popup

interface Popup<T : Modifier> : Layout<T>

代表一个 Jetpack Compose 的 Popup(弹窗)组件。

Popup 是一个浮动容器,会显示在当前 Activity 的顶部。 它提供了两种定位方式:

  1. 通过对齐 (Alignment) 和偏移 (Offset) 相对于其父组件进行定位。

  2. 通过一个自定义的 com.m8test.script.core.api.ui.compose.window.PopupPositionProvider 来精确计算其在屏幕上的位置。

注意: 如果同时设置了 OffsetPopupPositionProvider,在渲染时会优先使用 Offset 的定位方式。

Author

M8Test, [email protected], https://m8test.com

Parameters

T

修饰符的类型。

Functions

Link copied to clipboard
abstract fun DisposableEffect(disposableEffectBuilder: DisposableEffect.() -> Unit)
Link copied to clipboard
Link copied to clipboard
abstract fun <V> getCompositionLocalValue(compositionLocal: ProvidableCompositionLocal<V>): V?

获取 compositionLocal 的值

Link copied to clipboard
abstract fun getContext(): ScriptContext

获取脚本上下文对象 ScriptContext.

Link copied to clipboard
abstract fun LaunchedEffect(launchedEffectBuilder: LaunchedEffect.() -> Unit)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
abstract fun setAlignment(builder: (alignments: BoxAlignments) -> Alignment)

设置弹窗相对于其父布局的对齐方式。

Link copied to clipboard
abstract fun setContent(contentBuilder: UnitScopeSlot.() -> Unit)

设置弹窗中要显示的内容。

Link copied to clipboard
abstract fun setModifier(modifierBuilder: T.() -> Unit)
Link copied to clipboard
abstract fun setOffset(offsetBuilder: IntOffset.() -> Unit)

设置相对于对齐位置的偏移量。 设置此值将激活第一种定位方式。

Link copied to clipboard
abstract fun setOnDismissRequest(action: () -> Unit)

设置当用户请求关闭弹窗时执行的回调操作。

Link copied to clipboard
abstract fun setPopupPositionProvider(providerBuilder: PopupPositionProvider.() -> Unit)

设置用于计算弹窗位置的自定义提供者。 设置此值将激活第二种定位方式(前提是未设置 Offset)。

Link copied to clipboard
abstract fun setPopupProperties(propertiesBuilder: PopupProperties.() -> Unit)

设置用于自定义弹窗行为的属性。

Link copied to clipboard
abstract fun setVisible(visible: Boolean)

设置显示/隐藏当前 Composable

Link copied to clipboard
abstract fun SideEffect(sideEffectBuilder: SideEffect.() -> Unit)
Link copied to clipboard

设置所有需要用到的聚合状态,例如 DrawerState, BottomSheetState 等

Link copied to clipboard
abstract fun trackSingleState(state: SingleState)

添加当前 Composable 需要监听的状态,如果状态改变的话 Composable 会重组