docs: @Nullable
      private View findEdgeView(LinearLayoutManager lm, OrientationHelper helper, boolean start) {
          if (lm.getChildCount() == 0) {
              return null;
          }
  
          // If we're at the end of the list, we shouldn't snap
          // to avoid having the last item not completely visible.
          if (isAtEndOfList(lm) && !snapLastItem) {
              return null;
          }
  
          View edgeView = null;
          int distanceToEdge = Integer.MAX_VALUE;
  
          for (int i = 0; i < lm.getChildCount(); i++) {
              View currentView = lm.getChildAt(i);
              int currentViewDistance;
              if ((start && !isRtl) || (!start && isRtl)) {
                  currentViewDistance = Math.abs(helper.getDecoratedStart(currentView));
              } else {
                  currentViewDistance = Math.abs(helper.getDecoratedEnd(currentView)
                          - helper.getEnd());
              }
              if (currentViewDistance < distanceToEdge) {
                  distanceToEdge = currentViewDistance;
                  edgeView = currentView;
              }
          }
          return edgeView;
      }