我有一些元素在底部工作表中有焦点。我想在按下系统后退按钮时折叠底部工作表,这很容易:
BackHandler(enabled = bottomSheetState.isExpanded) {
scope.launch {
bottomSheetState.collapse()
}
}
问题是,如果一个元素在底部工作表中获得焦点,则只有在按下后退按钮后才会触发后退处理程序的逻辑两次:一次从元素上移除焦点(轮廓文本字段)并再次触发崩溃。
我尝试使用 LocalFocusManager.current
组合在按下后退时清除焦点,但直到元素失去焦点时才会触发后退逻辑。
我可以清除对折叠的关注,所以我猜真正的问题是当工作表 1) 可见且 2) 有一个子元素聚焦时必须按回两次。
有没有办法阻止焦点元素取代我的后台逻辑?