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(); }