我正在开发一款Android应用程序,以方便视障人士的导航。应用程序的一个功能是让用户知道他当前的位置。用户有两种不同的视图来了解这一点。我正在使用FragmentPagerAdapter来实现两个并排的标签,以告诉他目前在旅行路线上的位置。使用FragmentPagerAdapter我们加载两个片段,用户可以在这些视图之间切换。
public class NavigateActivity extends FragmentActivity implements ActionBar.TabListener{
private ViewPager viewPager;
private NavigateActivity.TabsPagerAdapter mAdapter;
private ActionBar actionBar;
viewPager.setAdapter(mAdapter);
mAdapter = new NavigateActivity.TabsPagerAdapter(getSupportFragmentManager());
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Adding Tabs
private String[] tabs = {"Text", "Map"};
for (String tab_name : tabs) {
actionBar.addTab(actionBar.newTab().setText(tab_name)
.setTabListener(this));
}
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
// Override some existing java functions and load respective fragment on click
});
}
Click here for image of the View
我在Android设备上打开了回话。
假设我在“文本”选项卡(选项卡1)上,并希望切换到“地图”选项卡(选项卡2)。
我点击“地图”标签,对话回读文字
我双击切换到Map选项卡,Talk back读取文本三次
我不希望在双击时或之后发布任何回话声明
我在Tab的一个片段中尝试了下面的代码,但是没有成功
public class TextNavigationFragment extends Fragment implements View.OnClickListener {
// Below code loads the fragment
View rootView = inflater.inflate(R.layout.text_navigation_fragment, null);
rootView.setContentDescription("\u00A0");
}
我甚至尝试使用NavigateActivity中的代码来检测双击并说出空的Charsequence。
viewPager.setAccessibilityDelegate(new View.AccessibilityDelegate()
{
@Override
public void onInitializeAccessibilityNodeInfo(View v, AccessibilityNodeInfo info)
{
super.onInitializeAccessibilityNodeInfo(v, info);
CharSequence description = getResources().getText(R.string.id);
AccessibilityAction customClick = new AccessibilityAction(AccessibilityAction.ACTION_ACTION_CLICK, description);
info.addAction(customClick);
}
});
但是上面的代码显示了错误,因为我的应用程序在API <21的设备上运行。我无法理解如何使用* compat(用作设备API的上述代码的替代品&lt; 21)。