Как использовать специальные возможности Android для глобальных текстов?

#android #accessibility #android-accessibility

Вопрос:

У меня есть некоторые метрические единицы, такие как «кг» и «мл». Talkback читает письма, и я реализовал описание содержимого в каждом случае:

 when (someText) {
    "kg" -> someText.contentDescription = "kilograms"
    "ml" -> someText.contentDescription = "milliliters"
}
 

Это работает, но мне нужно сделать это глобальным: каждый кг или мл в приложении должен быть прочитан Talkback как «килограммы» или «миллилитры».

Какой подход является наилучшим для этого?

Ответ №1:

Он не может быть настроен для обратной связи на уровне приложения. Вы можете создать функцию utils и использовать ее во всей кодовой базе.

Что-то вроде:

 fun TextView.setUnit(unit: String) {
    text = unit
    when (unit) {
        "kg" -> contentDescription = "kilograms"
        "ml" -> contentDescription = "milliliters"
    }
}
 

А затем использовать его:

 textView.setUnit("kg")
 

Другим вариантом может быть создание пользовательского представления для единиц визуализации, в котором задается описание содержимого.