Android辅助功能更改焦点侦听器

时间:2015-06-23 21:10:48

标签: android android-viewpager accessibility

我希望在可访问性在视图寻呼机中更改焦点时设置onFocusChangeListener。

所以基本上现在通过可访问性我可以访问视图寻呼机的前2页而不是第三页。我也尝试在我的OnCreate上将视图寻呼机的offScreenPageLimit设置为6,但它仍然无法正常工作。

到目前为止我尝试过:

  1. mPager.setOnGenericMotionListener

  2. mPager.setOnFocusChangeListener

    3. mPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            Log.d(TAG,"on page scrolled");
        }
    
        @Override
        public void onPageSelected(int position) {
            Log.d(TAG,"on page selected");
        }
    
        @Override
        public void onPageScrollStateChanged(int state) {
            Log.d(TAG,"on page scroll state");
        }
    });
    
  3. 请帮忙..谢谢:)

1 个答案:

答案 0 :(得分:1)

您可以扩展ViewPager并覆盖dispatchPopulateAccessibilityEvent(也请调用super)

一旦你这样做并添加下面提到的条件,你就可以实现你对学习可访问性的梦想悬停进入/退出

dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {

        if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_HOVER_EXIT) {
           //...
        } else if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_HOVER_ENTER) {
           //...
        }
}

与悬停相比,TYPE_VIEW_ACCESSIBILITY_FOCUSED更优雅,因为它涵盖了无人悬停/触摸的辅助功能焦点场景

请参阅https://developer.android.com/reference/android/view/View.html#dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent)

相关问题