code: @Override
      public void addFocusables(ArrayList<View> views, int direction, int focusableMode) {
          final int focusableCount = views.size();
  
          final int descendantFocusability = getDescendantFocusability();
  
          if (descendantFocusability != FOCUS_BLOCK_DESCENDANTS) {
              for (int i = 0; i < getChildCount(); i++) {
                  final View child = getChildAt(i);
                  if (child.getVisibility() == VISIBLE) {
                      ItemInfo ii = infoForChild(child);
                      if (ii != null && ii.position == mCurItem) {
                          child.addFocusables(views, direction, focusableMode);
                      }
                  }
              }
          }
  
          // we add ourselves (if focusable) in all cases except for when we are
          // FOCUS_AFTER_DESCENDANTS and there are some descendants focusable.  this is
          // to avoid the focus search finding layouts when a more precise search
          // among the focusable children would be more interesting.
          if (
                  descendantFocusability != FOCUS_AFTER_DESCENDANTS ||
                          // No focusable descendants
                          (focusableCount == views.size())) {
              // Note that we can't call the superclass here, because it will
              // add all views in.  So we need to do the same thing View does.
              if (!isFocusable()) {
                  return;
              }
              if ((focusableMode & FOCUSABLES_TOUCH_MODE) == FOCUSABLES_TOUCH_MODE &&
                      isInTouchMode() && !isFocusableInTouchMode()) {
                  return;
              }
              if (views != null) {
                  views.add(this);
              }
          }
      }
docs: We only want the current page that is being shown to be focusable.