Jetpack Compose 之 DropdownMenu

991 阅读1分钟

属性

@Composable
fun DropdownMenu(
    //是否打开
    expanded: Boolean,
    //消失的回调
    onDismissRequest: () -> Unit,
    modifier: Modifier = Modifier,
    //位置的偏移量
    offset: DpOffset = DpOffset(0.dp, 0.dp),
    properties: PopupProperties = PopupProperties(focusable = true),
    content: @Composable ColumnScope.() -> Unit
) 

PopupProperties 包含以下属性

  1. focusable 是否聚焦,如果聚焦能接收按键的反馈,如:返回键
  2. dismissOnClickOutside 为 true 则点击 DropdownMenu 外部会消失
  3. dismissOnBackPress 为ture 点击返回键会 消失
  4. securePolicy 是否可以截图:SecureFlagPolicy.SecureOn 、SecureFlagPolicy.SecureOff、SecureFlagPolicy.Inherit

案例

@Composable
fun Test() {
    var expanded by remember {
 mutableStateOf(false)
    }
 Column {
 Text(text = "下拉菜单", modifier = Modifier.clickable {
expanded = !expanded
        } )

        DropdownMenu(
            expanded = expanded, onDismissRequest = {
expanded = false
            } ,
            properties = PopupProperties(
                focusable = true,
                dismissOnBackPress = false,
                dismissOnClickOutside = true,
                securePolicy = SecureFlagPolicy.SecureOn//是否可以截图。
            )
        ) {
 DropdownMenuItem(onClick = {

} ) {
 Text(text = "菜单1")
            }

 DropdownMenuItem(onClick = {

} ) {
 Text(text = "菜单2")
            }
}
}
}