android - Jetpack Compose 中 BasicTextField 的焦点有多清晰?
问题描述
我有一个 Jetpack Compose (Beta04) BasicTextField(带装饰框)。如何清除焦点?
我曾尝试使用 focusRequester 但这不起作用:
val focusRequester = remember { FocusRequester() }
// ...
BasicTextField(modifier = Modifier.focusRequester(focusRequester), /* ... */)
// ...
placesFocusRequester.freeFocus()
解决方案
要从当前聚焦的组件中清除焦点,您可以使用以下FocusManager.clearFocus
方法:
val focusRequester = remember { FocusRequester() }
val focusManager = LocalFocusManager.current
var value by rememberSaveable { mutableStateOf("initial value") }
BasicTextField(
value = value,
onValueChange = { value = it },
decorationBox = { innerTextField ->
Row(
Modifier
.background(Color.LightGray, RoundedCornerShape(percent = 30))
.padding(16.dp)
.focusRequester(focusRequester)
) {
//...
innerTextField()
}
}
)
Button(onClick = { focusManager.clearFocus() }) {
Text("Clear focus")
}
推荐阅读
- kubernetes - Kubernetes - 当我扩展部署 pod 时卷未安装
- django - 如何在 Django 中存储模板的选定值
- javascript - 我如何消除所有这些 if-else
- javascript - 覆盖 JS 的 CSS GRID 列或行
- c# - 如何在 c# xamarin 表单中使用角度计算两点
- java - 我应该解析一次 JSON 并将数据存储在 ArrayList 中以供将来使用还是在每次需要数据时解析它?
- amazon-web-services - 如何从 AWS 目标组注销自动运行状况不佳的实例
- java - spring data jdbc 从 Oracle 获取下一个值序列?
- phpstorm - 如何去除垂直的黄线?
- r - 向 R 中的原始面板模型添加稳健的标准误差