Goo*_*ead 6 android accessibility android-fragments talkback
我正在开发一个简单的应用程序,其结构在活动和碎片中,这是使其可访问的要求之一,所以我做了所有的内容描述,导航,焦点等.
它的效果很好,除了片段,如果有一个活动加载一个片段,对讲读取其内容,那么用户点击一些东西和一个可以添加到堆栈顶部的细节片段.
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
audios = AudiosListFragment.newInstance(params);
ft.add(R.id.audios_fragment_holder, audios);
ft.commit();
Run Code Online (Sandbox Code Playgroud)
如果用户继续导航对讲仍然记住丢失片段的每个元素的位置.
有没有办法清除事件的辅助功能列表并强制它再次获取它?可访问性管理器似乎没有任何方法.
AccessibilityManager manager = (AccessibilityManager) getActivity().getSystemService(Context.ACCESSIBILITY_SERVICE);
manager.getAccessibilityServiceList();
Run Code Online (Sandbox Code Playgroud)
- 编辑 - 我尝试过但没有成功的事情.
从片段中的视图创建发送事件.
AccessibilityEvent event =
AccessibilityEvent.obtain(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
AccessibilityDelegate delegate = new AccessibilityDelegate();
v.setAccessibilityDelegate(delegate);
delegate.dispatchPopulateAccessibilityEvent(container, event);
Run Code Online (Sandbox Code Playgroud)
中断片段的onResume上的所有待处理文本.
AccessibilityManager mgr = (AccessibilityManager)
getActivity().getSystemService(Context.ACCESSIBILITY_SERVICE);
mgr.interrupt();
Run Code Online (Sandbox Code Playgroud)
请求装饰器视图注册window_content_change或window_state_change事件.
getWindow().getDecorView()
.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
Run Code Online (Sandbox Code Playgroud)
- 编辑 - 制作了一个DumpView层次结构,并且没有被解散的片段的痕迹,但是对讲的剧照导航它:(
谢谢,我希望有人可以对这个问题有所了解:)
问候.
我发现下面的片段不被读取的唯一方法是在片段事务中替换它们,这是一个缺点,因为您会丢失该片段的状态......
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
BookDetailFragment book = BookDetailFragment.newInstance(id);
ft.replace(R.id.books_fragment_holder, book);
ft.addToBackStack(BookDetailFragment.TAG);
ft.commit();
Run Code Online (Sandbox Code Playgroud)
我将继续寻找如何正确地做到这一点。
| 归档时间: |
|
| 查看次数: |
1786 次 |
| 最近记录: |