docs: public int getOffsetToStart() {
          if (getChildCount() == 0) return -1;
  
          final View view = getChildAt(0);
  
          if (view == null) {
              //in some conditions, for exapmle, calling this method when outter activity destroy, may cause npe
              return -1;
          }
  
          int position = getPosition(view);
          final int idx = findRangeLength(Range.create(position, position));
          if (idx < 0 || idx >= mRangeLengths.size()) {
              return -1;
          }
  
          int offset = -mOrientationHelper.getDecoratedStart(view);
          for (int i = 0; i < idx; i++) {
              Pair<Range<Integer>, Integer> pair = mRangeLengths.get(i);
              if (pair != null) {
                  offset += pair.second;
              }
          }
  
          return offset;
      }