как закрыть раскрывающееся всплывающее окно при нажатии вне раскрывающегося всплывающего окна (составить jetbrain)?
Я использую jetbrain compose версии 2020.3.3, и я реализую пример раскрывающегося списка, аналогичный приведенному ниже коду. согласно моему анализу «DropDownmenu» внутренне с использованием «Popup» и по умолчанию всплывающее окно с фокусировкой ложно, и в «Dropdownmenu» нет опции, чтобы сделать это правдой, поэтому, когда раскрывающийся список раскрывается, щелчок за пределами раскрывающегося списка не закрывает раскрывающийся список. Кажется, что расширенный раскрывающийся список действует как блокирующее всплывающее окно `
@Composable
fun DropdownDemo() {
var expanded = remember { mutableStateOf(false) }
val items = listOf("A", "B", "C", "D", "E", "F")
val disabledValue = "B"
var selectedIndex = remember { mutableStateOf(0) }
Box(modifier = Modifier.fillMaxSize().wrapContentSize(Alignment.TopStart)) {
Text(items[selectedIndex.value],modifier = Modifier.fillMaxWidth().clickable(onClick = { expanded.value = true }).background(
Color.Gray))
DropdownMenu(
expanded = expanded.value,
onDismissRequest = { expanded.value = false },
modifier = Modifier.fillMaxWidth().background(
Color.Red)
) {
items.forEachIndexed { index, s ->
DropdownMenuItem(onClick = {
selectedIndex.value = index
expanded.value = false
}) {
val disabledText = if (s == disabledValue) {
" (Disabled)"
} else {
""
}
Text(text = s + disabledText)
}
}
}
}
}`