private void renderViewPager() {
    // Use view pager
    carouselViewPager = new SdkCenteredViewPager(getContext());
    carouselViewPager.setFocusable(false);
    carouselViewPager.setFocusableInTouchMode(false);
    carouselViewPager.setLayoutParams(
        LayoutUtils.createLinearParams(
            LayoutUtils.MATCH_PARENT, LayoutUtils.MATCH_PARENT, Gravity.CENTER));
    carouselViewPager.setBackgroundColor(AppLovinCarouselViewSettings.VIEW_PAGER_BACKGROUND_COLOR);
    carouselViewPager.setPageMargin(AppLovinCarouselViewSettings.VIEW_PAGER_MARGIN);
    carouselViewPager.setOffscreenPageLimit(
        AppLovinCarouselViewSettings.VIEW_PAGER_OFF_SCREEN_PAGE_LIMIT);

    carouselViewPager.setClipToPadding(false);

    adapter = new InlineCarouselAdapter(getContext(), sdk, this);

    carouselViewPager.setAdapter(this.adapter);

    carouselViewPager.setOnPageChangeListener(
        new SdkCenteredViewPager.OnPageChangeListener() {
          @Override
          public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            // Useless for us.
          }

          @Override
          public void onPageScrollStateChanged(int state) {
            if (state == SdkCenteredViewPager.SCROLL_STATE_IDLE) {
              final int currentItem = carouselViewPager.getCurrentItem();
              lastActiveCardIndex = currentItem;

              // Activate the current card if it exists (which it should always)
              activateCard(currentItem);

              // Deactivate the left card if it exists
              deactivateCard(currentItem - 1);

              // Deactivate the right card if it exists
              deactivateCard(currentItem + 1);
            }
          }

          @Override
          public void onPageSelected(int position) {
            // Useless, invoked when .setPage(int) is called
          }
        });

    addView(carouselViewPager);
    removeLoadingIndicator();
  }