设置选项菜单android Talkback的内容描述

Nam*_*mNH 8 android menuitem optionmenu talkback

我正在为应用程序实现" Read Aloud"或" Talkback".一切都在使用contentDescription文本,但是通过选项菜单,我发现没有任何相关内容contentDescription,我希望系统读取"Menu "+ item's name.

EX:我的菜单有2个项目:" 创建新文件夹 "和" 删除当前文件夹 ",目前,当我关注菜单项(支持轨迹球和蓝牙键)时,系统可以准确地说出菜单的文本.但我希望它更像" 1:菜单创建新文件夹 "和" 2:菜单删除当前文件夹 ".

那么,我该如何更改阅读文本?menu item当蓝牙键盘UP/DOWN按键时,如何获得专注?

tim*_*etz 12

v4支持库中的MenuItemCompat有一个

android.support.v4.view.MenuItemCompat.setContentDescription(MenuItem menuItem, CharSequence contentDescription) 
Run Code Online (Sandbox Code Playgroud)

用于前奥利奥设备的向后兼容性的方法.


Nam*_*mNH 11

正如我的调查,在Android内部源代码,类ActionMenuItemView.java方法setTitle(CharSequence title),源代码也设置setContentDescription(title),所以Android将默认读取您的MenuItem的文本.我不知道为什么核心在这种情况下如此不灵活.

更新:

感谢@sofakingforever的回答.

似乎Google只是在API 26()上将该setContentDescription(CharSequence contentDescription)方法添加到MenuItem类中Android O.

更新: 感谢您提供新的@ tim.paetz答案.看起来现在所有版本都支持setContentDescription使用android support v4库的菜单项.


Ami*_*mit 5

这个答案发布 AndroidX

androidx.core.view.MenuItemCompat.setContentDescription(menuItem,  contentDescription)
Run Code Online (Sandbox Code Playgroud)