
这个方法会执行两个关键操作:
- 调用 ViewRootImpl 的 setAccessibilityFocus 方法将自身设置为 focus,然后调用 invalidate() 触发重绘操作,ViewRootImpl 会在 onPostDraw 方法中执行 drawAccessibilityFocusedDrawableIfNeeded 来绘制绿框 。

- 调用 sendAccessibilityEvent 方法,将 TYPE_VIEW_ACCESSIBILITY_FOCUSED 事件发送出去,这个事件被 talkback 接收后,会调用朗读引擎 TTS 读出 View 的内容,实现了无障碍模式下对触摸区域内容的播报 。
- Case 1:无障碍模式下点击 View 播报“未加标签”
- Case 2:焦点过多,需要删除多余焦点或需要某个 View 能够进行播报
- Case 3:无障碍模式下在上层页面点击仍能选中下层 View
- Case 4:使用的自定义 Toast 不播报内容
mText.postDelayed(new Runnable() {@Override public void run() {mText.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_HOVER_ENTER);}}, 1);设置延时是为了避免不生效的问题 。- Case 5:设置自定义 View 的播报内容
举例:设置自定义 View 开/关状态(已开启/已关闭)的播报内容 。
@Overridepublic void onPopulateAccessibilityEvent(AccessibilityEvent event) {super.onPopulateAccessibilityEvent(event);final CharSequence text = isChecked() ? "已开启" : "已关闭";if (text != null) {event.getText().add(text);}}- Case 6:设置自定义 View 播报的控件类型及选中状态
ViewCompat.setAccessibilityDelegate(targetView, new AccessibilityDelegateCompat() {@Overridepublic void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {super.onInitializeAccessibilityNodeInfo(host, info);info.setRoleDescription("标签类型");//设置播报的标签类型info.setCheckable(true);info.setChecked(checked);//设置播报的被选中状态}});加入我们【抖音接口授权是什么东西 抖音直播实时数据接口】欢迎加入抖音-关系与服务团队,我们专注于抖音多个核心业务场景的落地与迭代,在业务、架构、技术等方面都有投入,期待你的加入!推荐阅读
- 抖音软件怎么赚钱 抖音最新版本安装
- 抖音号查询对方手机号 通过手机号查抖音id
- 企业抖音号运营方案 抖音账号运营流程
- 抖音上传高清视频设置 抖音上传原画质的方法
- 抖音可以用电脑直播吗 直播电影版权获取方法
- 抖音认证怎么认证 抖音个人认证窍门
- 抖音星动之夜2021在哪里看 抖音星动之夜平台直播介绍
- 抖音支付什么时候上线 抖音支付正式上线情况介绍
- emoji锁屏怎么拍 抖音emoji锁屏怎么拍
- 好想好想和你在一起什么歌 抖音好想好想和你在一起数天上的星星是什么歌
