场景
我正在创建一个具有底部导航的应用程序。对于 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”?