code: @Override
      public View focusSearch(View focused, int direction) {
          View result = mLayout.onInterceptFocusSearch(focused, direction);
          if (result != null) {
              return result;
          }
          final FocusFinder ff = FocusFinder.getInstance();
          result = ff.findNextFocus(this, focused, direction);
          if (result == null && mAdapter != null) {
              eatRequestLayout();
              result = mLayout.onFocusSearchFailed(focused, direction, mRecycler, mState);
              resumeRequestLayout(false);
          }
          return result != null ? result : super.focusSearch(focused, direction);
      }
docs: Focus handling