如何解决辅助功能:TabLayout 的 Talkback
场景
我正在创建一个具有底部导航的应用程序。对于 1 个底部导航项,我有一个带有 ViewPager
和 TabLayout
假设我有 3 个底部导航项 A、B 和 C
对于 C,我们有片段 FragmentC。而在 FragmentC 中,又有 3 个 TabItem、X、Y 和 Z。
在默认实现中,当对讲读取任何选项卡(X,Y 或 Z)时,它会显示“X 选项卡,3 个中的 1 个”
要求
我希望标签 X、Y 和 Z 的读法不同
“C 中的 X,第 1 个标签,共 3 个”
代码
这是我做的
override fun onViewCreated(view: View,savedInstanceState: Bundle?) {
viewPager.adapter?.let { adapter ->
for (i in 0..adapter.count) {
tabs.getTabAt(i)
?.let {
it.contentDescription = setAccessibilityForTabs(i,adapter.count)
}
}
}
}
private fun setAccessibilityForTabs(pos: Int,size: Int) = when (pos) {
0 -> "X in C,tab 1 of 3"
1 -> "Y in X,tab 2 of 3"
else -> "Z in X,tab 3 of 3"
}
在此之后,对讲将其读作 “C 中的 X,第 1 个标签,共 3 个,标签 X 1 个,共 3 个”
所以我把上面的方法改成
private fun setAccessibilityForTabs(pos: Int,size: Int) = when (pos) {
0 -> "X in C"
1 -> "Y in X"
else -> "Z in X"
}
现在,结果是 “C 中的 X,第 X 个选项卡,共 3 个”
有什么办法可以让我把它读成“X in C,tab 1 of 3”?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。