android - 如何在 Jetpack Compose 中管理焦点状态

标签 android android-jetpack android-jetpack-compose focusmanager composable

我有一个自定义的可组合 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/

相关文章:

android - 底部导航+抽屉+广告

android - 在webview中加载https页面显示空白页面

android - Android 中的 Jetpack 和 Jitpack 有什么区别?

android - 如何使用 Jetpack Compose 处理 Activity.onActivityResult()?

android - 返回时刷新 ViewModel 中的数据 - Android(Kotlin)

android - Bitmap.compress 不会减少字节数

android - pthread_t 在 android 和 linux 中

android - ConstraintLayout 隐藏最后一行 TextView 与 app :layout_constrainedHeight ="true"

android - 在 Jetpack Compose 中单击时如何禁用涟漪效应

android - 如何在 jetpack compose Lazy Column 上实现反弹效果