Доступность Android для контекстного меню в Редактировать текст - PullRequest
0 голосов
/ 11 декабря 2018

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

У меня есть пользовательский текст редактирования в пользовательском AlertDialog, у меня есть требование выбрать весь текств тексте редактирования, когда отображается диалоговое окно.Чтобы добиться этого, я использую

editText.setSelectAllOnFocus(true)

. Из-за этого My Accessibility Talkback говорит action: share всякий раз, когда редактируется текст.Сначала я думал, что это из-за локального контекстного меню правки текста, а затем я отключил локальное контекстное меню, используя следующий код:

editText.customSelectionActionModeCallback = object : ActionMode.Callback {
        override fun onActionItemClicked(mode: ActionMode?, item: MenuItem?): Boolean {
            return false
        }

        override fun onCreateActionMode(mode: ActionMode?, menu: Menu?): Boolean {
            return false
        }

        override fun onPrepareActionMode(mode: ActionMode?, menu: Menu?): Boolean {
            return false
        }

        override fun onDestroyActionMode(mode: ActionMode?) {}
    }

Даже тогда я не мог избавиться от действия "Говорить на речах": поделиться».Кроме того, я перезаписываю функцию «onInitializeAccessibilityNodeInfo» в edittext для отладки того, какие действия выделены для Talkback, и я вижу, что какое-то неизвестное действие имеет метку «Share» (см. Скриншот ниже)

enter image description here

Я могу удалить « action: share » с кодом ниже, но не уверен, что это правильный путь и будет ли иметь какие-либо побочные эффекты

editText.setAccessibilityDelegate(object : AccessibilityDelegate() {
        override fun onInitializeAccessibilityNodeInfo(host: View?, info: AccessibilityNodeInfo?) {
            super.onInitializeAccessibilityNodeInfo(host, info)
            info?.actionList?.clear()// removes the action share
        }
    })

Пожалуйста, сообщите, если есть какой-либо лучший способ обработки действий для Доступности в Android.

Примечание. Я протестировал это на Pixel 1 (7.1) и Samsung Note 8 (7.1.1).

...