我有一个自定义的可组合 View (本质上是 Surface + Text),我想根据焦点状态更改表面的颜色。 FocusManager#FocusNode 被标记为内部的,我不知道有什么方法可以实现这一点。这只是尚不可用吗?还有其他人必须解决这个问题吗?
最佳答案
与 1.0.x
您可以使用 Modifier.onFocusChanged
观察焦点状态事件。
就像是:
var color by remember { mutableStateOf(Black) }
val focusRequester = FocusRequester()
Text(
modifier = Modifier
.focusRequester(focusRequester)
.onFocusChanged { color = if (it.isFocused) Green else Black }
.focusModifier()
.pointerInput(Unit) { detectTapGestures { focusRequester.requestFocus() } },
text = "Text",
color = color
)
关于android - 如何在 Jetpack Compose 中管理焦点状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61394495/