覆盖包含图标和TextView的LinearLayout的TalkBack文本

时间:2012-09-29 00:11:11

标签: android accessibility

我基本上有这个:

<MyCustomLinearLayout>
  <ImageView>
  <TextView>
</MyCustomLinearLayout>

我想覆盖整个布局子结构的辅助功能文本;当LinearLayout或其任何一个孩子被调整时,我想完全控制TalkBack所说的内容(所以我可以说“3条评论”而不是“评论图标3”)。

我尝试过覆盖sendAccessibilityEventUncheckeddispatchPopulateAccessibilityEventrequestSendAccessibilityEvent等的各种组合无济于事,我无法在任何地方找到这个相当简单设置的示例。

1 个答案:

答案 0 :(得分:0)

在布局上使用View.setContentDescription()动态设置文字并阻止TalkBack阅读子视图的内容。

myText.setText(text);
. . .
myLayout.setContentDescription(imageDescription + " " + text);

由于您是动态设置描述,因此您可以在布局XML中将图像的内容描述设置为@null,以避免Lint错误。

<ImageView
    . . .
    android:contentDescription="@null" />

另请考虑在Making Android Apps Accessible上观看最近的Android开发人员办公时间视频,其中涵盖了这些主题等等。