Мне не удалось реализовать импорт списка с помощью CollectionInfo и CollectionItemInfo.
Мне удалось скомпилировать, и приложение также запускается. Я ожидал, что TallkBack прочитает общее количество элементов списка и индекс текущего элемента.
Но TalkBack не считывает количество элементов списка и индекс текущего элемента, когда я касаюсь любого элемента вкладки. .
Я не знаю, почему это не работает. Что еще мне нужно для использования CollectionInfo и CollectionItemInfo?
Приведенный ниже код — это мой код Kotlin, реализующий элементы управления вкладками.
Я скопировал использование CollectionInfo и CollectionItemInfo в TabLayout.java. Мой код почти такой же, как и "TabLayout.java".
LinearLayout.accessibilityDelegate = object: AccessibilityDelegate() {
override fun onInitializeAccessibilityNodeInfo(
host: View,
info: AccessibilityNodeInfo
){
if(count != null) {
infoCompat.setCollectionInfo(
CollectionInfoCompat.obtain(
1,
count,
false,
CollectionInfo.SELECTION_MODE_SINGLE
)
)
}
}
}
// Item AccessibilityNodeInfoCompat
val tabTexts:List = listOf(R.id.hw_text,R.id.hw_text_ko,R.id.hw_text_ja,R.id.hw_text_de).map { findViewById(it) }
tabTexts.forEachIndexed{ index, tab ->
tab.accessibilityDelegate = object: AccessibilityDelegate() {
override fun onInitializeAccessibilityNodeInfo(
host: View,
info: AccessibilityNodeInfo
){
infoCompat.setCollectionItemInfo(CollectionItemInfoCompat.obtain(
0,
1,
index,
1,
false,
selected == true
)
)
}
}
}
Ниже приведен XML-макет пользовательского элемента управления вкладками.
Подробнее здесь: https://stackoverflow.com/questions/784 ... ectioninfo