docs: @Override
      public Object instantiateItem(ViewGroup container, int position) {
          int itemViewType = getItemViewType(position);
          RecyclerView.ViewHolder holder = mRecycledViewPool.getRecycledView(itemViewType);
  
          if (holder == null) {
              holder = mAdapter.createViewHolder(container, itemViewType);
          }
  
  
          onBindViewHolder((VH) holder, position);
          //itemViews' layoutParam will be reused when there are more than one nested ViewPager in one page,
          //so the attributes of layoutParam such as widthFactor and position will also be reused,
          //while these attributes should be reset to default value during reused.
          //Considering ViewPager.LayoutParams has a few inner attributes which could not be modify outside, we provide a new instance here
          container.addView(holder.itemView, new ViewPager.LayoutParams());
  
          return holder;
      }