1.compose中怎么使用对话框?
2.怎么显示Popup弹窗?
一、Compose显示对话框
二、Popup
Popup就类似以前的Popupwindow,我们可以看到其实上面的DropdownMenu是Popup的一个具体实现。
2.1 Popup定义
Popup的定义如下:
@Composable
fun Popup(
alignment: Alignment = Alignment.TopStart,
offset: IntOffset = IntOffset(0, 0),
onDismissRequest: (() -> Unit)? = null,
properties: PopupProperties = PopupProperties(),
content: @Composable () -> Unit
) {
val popupPositioner = remember(alignment, offset) {
AlignmentOffsetPositionProvider(
alignment,
offset
)
}
Popup(
popupPositionProvider = popupPositioner,
onDismissRequest = onDismissRequest,
properties = properties,
content = content
)
}
相关属性分析
属性 | 取值 | 备注 |
alignment | 在父控件的对齐方式。 TopStart:顶部开头对齐 TopCenter:顶部居中对齐 | 对齐方式。 |
offset | offset 偏移。IntOffset(x,y) x是水平方向上的偏移,y是竖直方向上的偏移 | 偏移量。相对于对齐位置的基准线。 |
onDismissRequest | 这个相当于原来的Popup设置outsideClick处理 | 当用户在弹出窗口外单击时执行的回调 |
properties | PopupProperties对象。 | 弹窗属性 |
content | 包裹的Compose控件 | 子控件卡槽。(弹窗内容区域) |
如图,标题栏的盘点按钮,点击以后,开始显示一个Popup弹窗。
1)通过一个状态State控制是否显示和隐藏Popup
2) 定义弹窗的位置和内容。