我的应用程序中有一个自定义 QuickAction 菜单。我为打开菜单的 ImageView 添加了contentDescription “打开菜单”。所以我的 TalkBack(形成辅助功能设置)宣布了相同的内容。
弹出菜单必须setOutsideTouchable(true)
在外面触摸时将其关闭。当 TalkBack 开启时,用户必须双击以将其关闭,但 Android 不会宣布任何此类消息。理想情况下,它应该宣布“双击关闭...”。
我怎样才能做到这一点?
另外,我想宣布菜单何时关闭。我试过在里面发送 AccessibilityEvent:QuickAction.setOnDismissListener(new myQuickAction.OnDismissListener() {
@Override
public void onDismiss() {
// tried sending event here
}
添加了参考图像以进行详细说明。单击按钮蓝色弹出窗口是 QuickAction 弹出窗口。现在我想在用户点击白色区域上的任意位置(黑点)时宣布“关闭菜单”。白色区域实际上是我的 LinearLayout 包含页眉、页脚等(图像中未显示)。我尝试为布局添加 contentDescription、importantForAccessibility 但无济于事。
问问题
796 次
1 回答
1
我会添加一个小“X”框,或者如果您不想弄乱您的 UI,请让您的布局容器具有焦点,并添加内容描述“双击关闭”。(注意:双击是一个对讲手势,不要添加这个,只是从你的问题中复制。)
编辑:本质上,我推荐的是,不是在视图中添加“X”按钮,而是允许布局视图本身充当“X”按钮。通过向布局添加 contentDescription,您可以使其具有焦点,即使典型用户不会与此视图交互,也没有什么可以阻止 TalkBack 用户这样做。因此,您不会在视觉上更改布局,但仍然具有单独关闭按钮的可访问性优势,即使从技术上讲这不是必需的,因为用户应该了解如何在没有它的情况下关闭模式。
我认为没有必要宣布它已被驳回。将焦点移回打开模式之前关注的元素是典型的方法。在您双击后发生这种情况,TalkBack 用户会知道菜单已被关闭,因为他们回到了主视图中,在打开模式的元素上。
旁注:确保您的 QuickAction 表现为模态!
于 2015-03-23T13:19:34.320 回答