docs: public void setCategoriesAdapter(@NonNull RecyclerView.Adapter<? extends RecyclerView.ViewHolder> inputAdapter) {
          mInputAdapter = inputAdapter;
          mOuterAdapter = new ChangeScrollModeAdapter(inputAdapter);
          boolean hasItems = inputAdapter.getItemCount() > 0;
          if (hasItems) {
              IOperationItem firstItem = mOuterAdapter.getItem(0);
              firstItem.setVisible(false);
          }
          validateScrollMode();
          mOuterAdapter.setIsIndeterminate(mInfinite);
          mOuterAdapter.setListener(this);
          mOuterAdapter.setOrientation(mOrientationState.getOrientation());
          mOuterAdapter.setSelectedGravity(mSelectionGravity);
          mRvCategories.setAdapter(mOuterAdapter);
  
          mSelectorHolder = (ChangeScrollModeAdapter.ChangeScrollModeHolder) mOuterAdapter
                  .createViewHolder(mRvCategories, ChangeScrollModeAdapter.VIEW_TYPE_CHANGE_SCROLL_MODE);
          // set first item to selectionView
          if (hasItems) {
              mSelectorHolder.bindItemWildcardHelper(inputAdapter, 0);
          }
          mSelectorHolder.itemView.setBackgroundColor(mColorCodeSelectionView);
  
          mFlContainerSelected.addView(mSelectorHolder.itemView);
  
          mOrientationState.initSelectionContainer(mFlContainerSelected);
  
          FrameLayout.LayoutParams layoutParams = (LayoutParams) mSelectorHolder.itemView.getLayoutParams();
          layoutParams.gravity = Gravity.CENTER;
      }