Once this view has finished inflating, it will bind the views.
<p>
It will also initialize the {@link RecyclerView} used to display the turn lanes
and animations used to show / hide views.
168086
@Override
  protected void onFinishInflate() {
    super.onFinishInflate();
    bind();
    initializeBackground();
    initializeTurnLaneRecyclerView();
    initializeInstructionListRecyclerView();
    initializeAnimations();
    initializeStepListClickListener();
    initializeButtons();
    ImageCreator.getInstance().initialize(getContext());
  }
36820
private void initAdapter() {
    RandomVideoCollectionGenerator randomVideoCollectionGenerator =
        new RandomVideoCollectionGenerator();
    final AdapteeCollection<Video> videoCollection =
        randomVideoCollectionGenerator.generateListAdapteeVideoCollection(VIDEO_COUNT);
    RendererBuilder<Video> rendererBuilder = new RendererBuilder<Video>().withPrototype(
        new RemovableVideoRenderer(new RemovableVideoRenderer.Listener() {
          @Override public void onRemoveButtonTapped(Video video) {
            ArrayList<Video> clonedList =
                new ArrayList<>((Collection<? extends Video>) videoCollection);
            clonedList.remove(video);
            adapter.diffUpdate(clonedList);
          }
        })).bind(Video.class, RemovableVideoRenderer.class);

    adapter = new RVRendererAdapter<>(rendererBuilder, videoCollection);
  }
758053
private void initializeInstructionListRecyclerView() {
    RouteUtils routeUtils = new RouteUtils();
    instructionListAdapter = new InstructionListAdapter(routeUtils, distanceFormatter);
    rvInstructions.setAdapter(instructionListAdapter);
    rvInstructions.setHasFixedSize(true);
    rvInstructions.setLayoutManager(new LinearLayoutManager(getContext()));
  }
1095190
@Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        //TODO OPTIMIZE
        for (Item item : mItems) {
            if (item.getType() == viewType) {
                return item.getViewHolder(parent);
            }
        }
        return mAdapter.onCreateViewHolder(parent, viewType);
    }
938870
protected void recycleAllFrom(@Nullable ViewGroup layout) {
        if (!useRecycler || layout == null) {
            return;
        }

        for (int i = 0, size = layout.getChildCount(); i < size; i++) {
            final View view = layout.getChildAt(i);
            final int viewType = (Integer) view.getTag(TAG_TYPE_ID);
            final Queue<View> cache = getViewsCache(viewType);
            if (cache != null) {
                cache.offer(view);
                onRecycleView(view);
            }
        }

        layout.removeAllViews();
    }
1139985
@Override
    @UiThread
    public void onDetachedFromRecyclerView(@NonNull RecyclerView recyclerView) {
        super.onDetachedFromRecyclerView(recyclerView);
        mAttachedRecyclerViewPool.remove(recyclerView);
    }
1198619
private void initializeDraggableView() {
    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
      @Override public void run() {
        draggableView.setVisibility(View.GONE);
        draggableView.closeToRight();
      }
    }, DELAY_MILLIS);
  }
806013
private void adaptItemColor() {
        if (adapter != null) {
            RecyclerView.Adapter<?> wrappedAdapter = adapter.getWrappedAdapter();

            if (wrappedAdapter instanceof ArrayRecyclerViewAdapter) {
                ((ArrayRecyclerViewAdapter) wrappedAdapter).setItemColor(itemColor);
            }
        }
    }
644405
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;
    }
1330217
<T> void bindWith(final PeasyRecyclerView<T> binder, final int viewType) {
        this.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int position = getLayoutPosition();
                position = (position <= binder.getLastItemIndex()) ? position : getAdapterPosition();
                position = (position <= binder.getLastItemIndex()) ? position : RecyclerView.NO_POSITION;
                if (position != RecyclerView.NO_POSITION) {
                    binder.onItemClick(v, viewType, position, binder.getItem(position), getInstance());
                }
            }
        });
        this.itemView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                int position = getLayoutPosition();
                position = (position <= binder.getLastItemIndex()) ? position : getAdapterPosition();
                position = (position <= binder.getLastItemIndex()) ? position : RecyclerView.NO_POSITION;
                if (getLayoutPosition() != RecyclerView.NO_POSITION) {
                    return binder.onItemLongClick(v, viewType, position, binder.getItem(position), getInstance());
                }
                return false;
            }
        });
    }
616038
protected void setFirstView() {
        final AbstractLmlView firstView = getCurrentView();
        if (firstView == null) {
            throw new GdxRuntimeException("No view marked as first. Unable to start application.");
        }
        setCurrentView(null);
        initiateView(firstView);
        setView(firstView, null);
    }
1259417
@PostConstruct
  public void initialize() {

    if (this.initializationState.setInitializing()) {
      if (this.visibility == null) {
        this.visibility = VisibilityModifier.PUBLIC;
      }
      this.initializationState.setInitialized();
    }
  }
407058
private void initPagerAnimator() {
        final SimpleTracker gridTracker = new SimpleTracker() {
            @Override
            public View getViewAt(int pos) {
                RecyclerView.ViewHolder holder = views.grid.findViewHolderForLayoutPosition(pos);
                return holder == null ? null : PhotoListAdapter.getImage(holder);
            }
        };

        final SimpleTracker pagerTracker = new SimpleTracker() {
            @Override
            public View getViewAt(int pos) {
                RecyclePagerAdapter.ViewHolder holder = pagerAdapter.getViewHolder(pos);
                return holder == null ? null : PhotoPagerAdapter.getImage(holder);
            }
        };

        listAnimator = GestureTransitions.from(views.grid, gridTracker)
                .into(views.pager, pagerTracker);

        // Setting up and animating image transition
        listAnimator.addPositionUpdateListener(this::applyFullPagerState);
    }
767864
public void show(final View view) {
        if (view.getVisibility() != View.VISIBLE) {
            view.setAlpha(0);
            view.setVisibility(View.VISIBLE);
            if (durationSet) {
                view.animate().setDuration(duration);
            }
            view.animate().alpha(1);
        }
    }
339045
@Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        // - get element from your dataset at this position
        // - replace the contents of the view with that element
        final ViewModel model = mDataset.get(position);
        holder.setFinalStatus(model.mFinalStatus);
        holder.setRedirectStatus(model.mRedirectStatus);
        holder.setSourceId(model.mSourceId);
        holder.setSourceType(model.mSourceType);
    }
200776
@Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        mFastAdapter.onBindViewHolder(holder, position);
    }
516525
protected void handleStateOnResult(LayoutChunkResult result, View[] views) {
        if (views == null) return;

        for (int i = 0; i < views.length; i++) {
            View view = views[i];
            if (view == null) {
                continue;
            }
            RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) view.getLayoutParams();

            // Consume the available space if the view is not removed OR changed
            if (params.isItemRemoved() || params.isItemChanged()) {
                result.mIgnoreConsumed = true;
            }

            // used when search a focusable view
            result.mFocusable = result.mFocusable || view.isFocusable();

            if (result.mFocusable && result.mIgnoreConsumed) {
                break;
            }
        }
    }