天天看点

无障碍开发问题总结

1、列表刷新导致无障碍焦点丢失——可以通过设置adapter.setHasStableIds(true)解决

    1)adapter.setHasStableIds(true); 

    2)重写adapter的getItemId方法  //如果不重写,会导致列表内容错乱

           @Override

            public long getItemId(int position) {

                    return position;

            }

    3)recyclerView.setItemAnimator(null); //如果不移除动画,数据变化的时候,会导致屏幕闪,item内容绘制看起来像有延时

2、无障碍提示文案,系统会自动补充列表信息

      把列表网格提示关掉就可以:“TalkBack设置->详细程度->读出列表和网格信息”

      无障碍提示文案,系统会自动补充元素类型,比如设置了“优惠券”,读取的是“优惠券 按钮”

      把读出元素类型关掉就可以:“TalkBack设置->详细程度->读出元素类型”

3、checkbox按钮语音提示勾选态错误

      代码中我们常常用数据源来直接渲染checkbox的勾选样式,这个时候会出现语音提示错误的情况,需要同时正确设置            isCheck(true/false)就可以确保正确提示

4、点击按钮之后,请求接口刷新页面,语音提示页面上的其他信息

      焦点抢占问题,可以看下是不是其他的控件调用了setSelected抢占焦点