在 Jetpack Compose 中编写 Android 视图代码时如何更改初始 Talkback 焦点

Max*_* Xu 6 android accessibility kotlin talkback android-jetpack-compose

基本上,我正在寻找 Jetpack Compose 中与sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)xml 中使用的等效项。

目前,我的页面看起来是这样的结构:

Surface {
   TopToolbarBar() {
     Row() {
       NavigationIcon()
       Title()
       ....
     }
   }
   Card1{
     Row1()
     Column() {
       RowA()
       RowB()
       Button()
     }
   }
   Card2{
     ...
   }
}
Run Code Online (Sandbox Code Playgroud)

我想将可访问性焦点放在“Button()而不是NavigationIcon()此页面打开时”上。不确定是否有任何解决方法可以实现这一目标?我认为没有官方的方法可以做到这一点。

我知道有一个 requestFocus() 方法和 FocusManager 概念。但是,我认为它们在可访问性方面没有用处focus

我尝试设置 focusRequester 并在 LaunchedEffect() 块内调用 requestFocus() 。但这是行不通的。初始 Talkback 焦点将停留在导航图标上,这是我的“撰写”页面最左侧和最顶部的项目。

有什么提示吗?我还发现有一个SemanticsPropertyReceiver.requestFocus但几乎没有一个示例可以用来理解它是如何工作的。