Я попытался добавить IconButton() и хотел нажать кнопку, чтобы превратить его в включено или выключено (а также щелкнув в другом месте, чтобы закрыть)
Но случился забавный вопрос.
Кнопка триггера включена в «Другие места», когда я нажимаю кнопку, чтобы закрыть меню, сначала срабатывает onDismissRequest(), а затем срабатывает кнопка onClick(), из-за чего я не могу закрыть меню (при нажатии будет мгновенно закрыть, а затем снова открыть)
Scaffold(
...
topBar = {
TopAppBar(
...
actions = {
var menuExpanded by remember { mutableStateOf(false) }
Box {
IconButton(onClick = { menuExpanded = !menuExpanded}) {
Icon(
painter = painterResource(id = R.drawable.menu),
contentDescription = "menu",
tint = white
)
}
DropdownMenu(
expanded = menuExpanded,
properties = PopupProperties(),
onDismissRequest = { menuExpanded = false }
) {
// items
}
}
}
)
}
) { ... }
Я знаю, что могу установить Modifier.offset() так, чтобы меню маскировало кнопку, но я не хочу этого делать.
Что я должен делать?





Вот для чего предназначен PopupProperties.focusable: true значение предотвращает нажатие других представлений, когда меню открыто. Кстати, это значение по умолчанию, если вы не укажете опцию properties.
DropdownMenu(
expanded = menuExpanded,
properties = PopupProperties(focusable = true),
onDismissRequest = { menuExpanded = false }
) {