Nano Hash - криптовалюты, майнинг, программирование

Talkback не объявляет, когда мы используем TAB для перехода к следующему полю

Предположим, что у меня есть TextView между двумя EditText.

TextView становится ВИДИМЫМ только тогда, когда определенные условия проходят после оценки текста EditText в FocusChange.

И когда я делаю его ВИДИМЫМ с помощью пользовательского динамического текста, я вызываю textView.announceForAccessibility(динамическая строка), чтобы объявить содержимое.

Это отлично работает, когда я использую жест TAP или жест SWIPE, чтобы перейти от editTextUnderEvaluation к другому другомуEditText. объявляетForAccessibility объявляет мою динамическую строку.

Но когда я использую клавиатуру и использую TAB для перехода от editTextUnderEvaluation к другомуEditText, моя динамическая строка не объявляется.

я пытался использовать

  1. доступностьLiveRegion
  2. доступностьПрохождениеПосле / До
  3. Создание и отправка нового события доступности ANNOUNCE

Ни один из них не работал.

Мое предположение. Когда я использую TAB для перехода от editTextUnderEvaluation к другомуEditText, разговор с виртуальной клавиатурой Android прерывает мое объявление. Можно ли как-то перевести разговор с клавиатуры на вежливый режим.


Ответы:


1

Я нашел проблему и решение. Отвечая на него для справки.

Когда вы используете TAB для перехода от одного текста редактирования к другому тексту редактирования, компонент EditText имеет объявление типа TYPE_VIEW_FOCUSED, которое читает «Редактирование текста редактирования...». Это объявление с высоким приоритетом, и оно прерывает все объявления, которые должны произойти перед ним. Поскольку мое объявление о просмотре текста появляется перед TYPE_VIEW_FOCUSED для второго текста редактирования, это также было прервано.

Так что не Клавиатура прервала речь, как я предполагал.

Что я сделал, чтобы решить эту проблему, так это переопределить метод onInitializeAccessibilityEvent() в EditText и пропустить событие для TYPE_VIEW_FOCUSED и отправить собственное объявление для этого события.

12.02.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..