请求焦点
首先是创建一个FocusRequester对象
val focusRequester = remember { FocusRequester() }
在需要请求焦点的地方调用
focusRequester.requestFocus()
最后,调用Modifier的focusRequester方法即可
Modifier.focusRequester(focusRequester)
示例
val focusRequester = remember { FocusRequester() }
var color by remember { mutableStateOf(Black) }
Box(
Modifier
.clickable { focusRequester.requestFocus() }
.border(2.dp, color)
// The focusRequester should be added BEFORE the focusable.
.focusRequester(focusRequester)
// The onFocusChanged should be added BEFORE the focusable that is being observed.
.onFocusChanged { color = if (it.isFocused) Green else Black }
.focusable()
)
释放焦点
首先是在当前的组件下创建一个FocusManager对象
val focusManager = LocalFocusManager.current
然后再需要释放焦点的地方调用该方法即可
focusManager.clearFocus()
示例
val focusManager = LocalFocusManager.current
Column(Modifier.clickable { focusManager.clearFocus() }) {
Box(Modifier.focusable().size(100.dp))
Box(Modifier.focusable().size(100.dp))
Box(Modifier.focusable().size(100.dp))
}
希望大家学习compose一切顺利