android 列语义在列中的第一个元素之后读取

nafvub8i  于 2023-03-28  发布在  Android
关注(0)|答案(1)|浏览(116)

Jetpack Compose中另一个奇怪的语义案例....

val list = listOf("String 1", "String 2", "String 3")

Column(
    Modifier.semantics { contentDescription = "test" }
) {
    list.forEach {
        Text(it)
    }
}

如果你使用这段代码,然后出于某种原因使用TalkBack,第一个Text会被高亮显示,然后当你滑动时,Column会高亮显示,然后再滑动一次,你会被带到第二个标签。之后它就正常了。我在想我使用的compose版本的语义层次结构中的一些东西完全混乱了。但我不知道如何证明这一点。LayoutInspector显示了一切,因为它应该和我期望的一样。但是有些东西没有翻译。
有人知道这一点吗?我不知道在哪里报告这些语义问题或研究他们的问题。我仍然在学习一些组成方面。

qjp7pelc

qjp7pelc1#

尝试删除Modifier.semantics { contentDescription = "test" }

示例:

val list = listOf("String 1", "String 2", "String 3")

Column {
    list.forEachIndexed{ _, value ->
        Text(text = it, modifier = Modifier.semantics { contentDescription = value  })
    }
}

相关问题