Android辅助功能viewPager读取两个视图
我使用Talkback读取我的ViewPager上的视图内容,它读取当前视图的内容和下一个视图的内容(不可见) 比如说 视图1 文本视图->hi1 文本视图->字节1 视图2 文本视图->hi2 TextView->bye2 对讲读取hi1、hi2、bye1、bye2 我试图更改pager.setOffscreenPageLimit()的值,但它没有任何作用,Talkback始终读取当前视图和下一个视图,即使OffScreenPageLimit的值为4(它应该读取下两个视图) 我发现的唯一信息是:Android辅助功能viewPager读取两个视图,android,android-viewpager,talkback,Android,Android Viewpager,Talkback,我使用Talkback读取我的ViewPager上的视图内容,它读取当前视图的内容和下一个视图的内容(不可见) 比如说 视图1 文本视图->hi1 文本视图->字节1 视图2 文本视图->hi2 TextView->bye2 对讲读取hi1、hi2、bye1、bye2 我试图更改pager.setOffscreenPageLimit()的值,但它没有任何作用,Talkback始终读取当前视图和下一个视图,即使OffScreenPageLimit的值为4(它应该读取下两个视图) 我发现的唯一信息是
有什么想法吗?您可以在OnChangePageView中创建
事件
自定义可访问性事件,并将要读取的字符串保存在列表中,并从Activity/fragment和adapter之间的接口获取位置
ViewPager.OnPageChangeListener pageChangeListener = new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrollStateChanged(int arg0) { }
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) { }
@Override
public void onPageSelected(int position) {
if(isTalkbackActive(getApplicationContext())) {
AccessibilityEvent event = AccessibilityEvent.obtain();
if (onPageChangeInterface != null) {
String text = onPageChangeInterface.getTextToRead(position);
event.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
event.getText().add(text);
viewPagerWallets.requestFocus();
viewPagerWallets.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
accessibilityManager.sendAccessibilityEvent(event);
}
}
}
};
然后将保存的同一字符串添加到亲戚的ContentDescription中,使所有视图仅位于第一个位置
ArrayList readAccessibilityValues = new ArrayList<>();
String valor = valor + txtView1.getText()+",";
valor = valor + txtView2.getText()+",";
if(position == 0) {
relativeGeneral.setContentDescription(valor);
}
readAccessibilityValues.add(valor);
ArrayList ReadAccessibilityValue=new ArrayList();
字符串valor=valor+txtView1.getText()+“,”;
valor=valor+txtView2.getText()+“,”;
如果(位置==0){
相对一般设置内容描述(valor);
}
readAccessibilityValues.add(valor);
我认为这不是最好的解决方案,但我还没有找到另一个您找到解决方案了吗?我也有同样的问题。恐怕没有,我为我需要的特殊情况做了变通,sorry@jegumi:您可以分享此问题的解决方案吗?我也有同样的problem@ManishAgrawat恐怕我再也不能使用那个旧代码了。我想我所做的是使用AccessibilityManager()和AccessibilityEvents()在某些情况下禁用/启用对讲。这似乎最终在对讲4.5.0(2016年4月27日发布)中得到了修复。这里的“onPageChangeInterface”是什么。请在ViewPagerWallets上给我解释这是剪切粘贴答案,如果不完整,那么它是无用的。