我目前正在将可访问性添加为我的应用程序中的一项新功能。我的目标是用户将使用Android 集成的TalkBack服务对其进行导航。
一切都运行良好,因为我正在我的活动布局内的元素上设置内容描述,即
<View
style="@style/custom.style"
android:contentDescription="@string/my_string_value"/>
这样,每次显示我的活动时,TalkBack 都会读取内容描述值。
仅使用一项在其上推送多个片段的活动,我并没有取得同样的成功。因此,如果我尝试在片段布局内的任何元素上设置内容描述,则在检测到触摸事件之前不会(自动)读取它(我希望 TalkBack 会自动执行它,就像在活动布局)
为了得到我期望的结果,我在片段类中这样做:
public abstract class myFragment extends Fragment {
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
myCustomView = (LinearLayout) rootView.findViewById(R.id.duende);
myCustomView.requestFocus();
}
}
到目前为止,这还没有成功,将可访问性设置为内容更改也是如此。
getWindow().getDecorView().sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
有没有人遇到过类似的问题?