Compose 在Row、Column上使用focusRestorer修饰符失效原因

focusRestorer 修饰符官方说明

复制代码
This modifier can be used to save and restore focus to a focus group. When focus leaves the focus group, it stores a reference to the item that was previously focused. Then when focus re-enters this focus group, it restores focus to the previously focused item.
Params:
fallback - A FocusRequester that is used when focus restoration fails to restore the initially focused item. For example, this might happen if the item is not available to be focused. The default value of FocusRequester.Default chooses the default focusable item.
Samples:
androidx.compose.ui.samples.FocusRestorerSample
LazyRow(Modifier.focusRestorer()) {
    item { Button(onClick = {}) { Text("1") } }
    item { Button(onClick = {}) { Text("2") } }
    item { Button(onClick = {}) { Text("3") } }
    item { Button(onClick = {}) { Text("4") } }
}
androidx.compose.ui.samples.FocusRestorerCustomFallbackSample
val focusRequester = remember { FocusRequester() }
LazyRow(
    // If restoration fails, focus would fallback to the item associated with focusRequester.
    Modifier.focusRestorer(focusRequester)
) {
    item {
        Button(modifier = Modifier.focusRequester(focusRequester), onClick = {}) { Text("1") }
    }
    item { Button(onClick = {}) { Text("2") } }
    item { Button(onClick = {}) { Text("3") } }
    item { Button(onClick = {}) { Text("4") } }
}

即针对focus group才能使用

所以 需要添加focusGroup修饰符

kotlin 复制代码
val focusRequester = remember { FocusRequester() }
Row(
    // If restoration fails, focus would fallback to the item associated with focusRequester.
    Modifier.focusRestorer(focusRequester).focusGroup() // 这里是关键
) {
    Button(modifier = Modifier.focusRequester(focusRequester), onClick = {}) { Text("1") }
    Button(onClick = {}) { Text("2") }
    Button(onClick = {}) { Text("3") }
    Button(onClick = {}) { Text("4") }
}
相关推荐
我命由我123451 天前
Android 控件 - 最简单的 Notification、Application Context 应用于 Notification
android·java·开发语言·junit·android studio·android jetpack·android-studio
工程师老罗2 天前
我用Ai学Android Jetpack Compose之Text
android·android jetpack
tangweiguo030519872 天前
Android Jetpack Compose 面试题大全(2025最新整理)
android·android jetpack
安卓开发者2 天前
Android Jetpack Compose:现代声明式UI开发指南
android·ui·android jetpack
普通网友2 天前
Android Jetpack 实战:ViewModel+Room+Lifecycle 教程
android·android jetpack
编码熊(Coding-Bear)2 天前
Android Jetpack Compose 沉浸式状态栏的实现
android jetpack·沉浸式状态栏·android compose·compose 沉浸式状态栏
普通网友2 天前
一文搞懂Android-JetPack组件原理之Lifecycle、LiveData、ViewModel与源码分析技巧
android·android jetpack
Redamancy-Beta2 天前
Android Jetpack学习笔记之Navigation (一)
android·学习·android jetpack
Fate_I_C3 天前
Android Jetpack实战
android·android jetpack
Fate_I_C4 天前
Android Jetpack的组成
android·android jetpack